Friday, 15 July 2011

java - JavaFX main fxml not loading fxml -



java - JavaFX main fxml not loading fxml -

my app has tabbed panes, in order maintain fxml files manageable, have main fxml file contains tabs, , separate fxml each of other tabs. working fine, reason, app has stopped loading sec tab. tried loading solo in main app, works fine. tried creating new fxml file test, , loading it, works. but, won't load sec tab. also, there no output console.

edit: after more trials, i've narrowed downwards split pane. tried simple fxml button, fine, add together split pane , 2 buttons, , view doesn't render.

here main class: public class main extends application {

@override public void start(stage primarystage) { parent mainview; seek { mainview = fxmlloader.load(getclass().getresource("view/mainview.fxml")); scene scene = new scene(mainview); primarystage.settitle("horse show manager"); primarystage.setscene(scene); primarystage.show(); } grab (ioexception e) { // todo auto-generated grab block e.printstacktrace(); } } public static void main(string[] args) { launch(args); } }

here mainview.fxml

<?import javafx.geometry.*?> <?import javafx.scene.control.*?> <?import java.lang.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.layout.gridpane?> <tabpane maxheight="-infinity" maxwidth="-infinity" minheight="-infinity" minwidth="-infinity" prefheight="800.0" prefwidth="800.0" tabclosingpolicy="unavailable" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8"> <tabs> <tab text="classes"> <fx:include source="grouppane.fxml" fx:id="grouppanecontent" /> </tab> <tab text="riders"> <fx:include source="riderpane.fxml" fx:id="riderpanecontent" /> </tab> </tabs> </tabpane>

here first pane

<?import javafx.collections.*?> <?import javafx.geometry.*?> <?import java.lang.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.layout.anchorpane?> <?import javafx.collections.fxcollections?> <splitpane dividerpositions="0.4" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.view.grouppanecontroller"> <items> <tableview fx:id="table" editable="true" anchorpane.bottomanchor="0.0" anchorpane.leftanchor="0.0" anchorpane.rightanchor="0.0" anchorpane.topanchor="0.0"> <columnresizepolicy> <tableview fx:constant="constrained_resize_policy" /> </columnresizepolicy> <columns> <tablecolumn fx:id="groupnumbercolumn" editable="false" prefwidth="40.0" text="class number" /> <tablecolumn fx:id="groupnamecolumn" editable="false" prefwidth="40.0" text="class name" /> </columns> </tableview> <gridpane alignment="center"> <columnconstraints> <columnconstraints hgrow="never" /> <columnconstraints hgrow="always" /> </columnconstraints> <rowconstraints> <rowconstraints minheight="10.0" vgrow="never" /> <rowconstraints vgrow="never" /> <rowconstraints vgrow="never" /> <rowconstraints vgrow="never" /> <rowconstraints vgrow="never" /> <rowconstraints vgrow="never" /> <rowconstraints vgrow="always" /> </rowconstraints> <children> <label text="number"> <gridpane.margin> <insets bottom="10.0" left="5.0" right="5.0" top="10.0" /> </gridpane.margin> </label> <label text="extra money" gridpane.rowindex="4"> <gridpane.margin> <insets bottom="10.0" left="5.0" right="5.0" top="10.0" /> </gridpane.margin> </label> <label text="fee" gridpane.rowindex="3"> <gridpane.margin> <insets bottom="10.0" left="5.0" right="5.0" top="10.0" /> </gridpane.margin> </label> <label text="gives points" gridpane.rowindex="5"> <gridpane.margin> <insets bottom="10.0" left="5.0" right="5.0" top="10.0" /> </gridpane.margin> </label> <label text="name" gridpane.rowindex="1"> <gridpane.margin> <insets bottom="10.0" left="5.0" right="5.0" top="10.0" /> </gridpane.margin> </label> <label text="placing" gridpane.rowindex="2"> <gridpane.margin> <insets bottom="10.0" left="5.0" right="5.0" top="10.0" /> </gridpane.margin> </label> <hbox alignment="top_right" prefheight="100.0" prefwidth="200.0" gridpane.columnindex="1" gridpane.rowindex="6"> <children> <button fx:id="addbutton" mnemonicparsing="false" onaction="#groupaddoredit" text="add"> <hbox.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </hbox.margin> </button> <button fx:id="editbutton" mnemonicparsing="false" onaction="#editing" text="edit"> <hbox.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </hbox.margin> </button> <button fx:id="deletebutton" mnemonicparsing="false" onaction= "#deletegroup" text="delete"> <hbox.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </hbox.margin> </button> </children> </hbox> <textfield fx:id="numberfield" gridpane.columnindex="1"> <gridpane.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </gridpane.margin> </textfield> <textfield fx:id="namefield" gridpane.columnindex="1" gridpane.rowindex="1"> <gridpane.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </gridpane.margin> </textfield> <textfield fx:id="feefield" gridpane.columnindex="1" gridpane.rowindex="3"> <gridpane.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </gridpane.margin> </textfield> <textfield fx:id="extramoneyfield" gridpane.columnindex="1" gridpane.rowindex="4"> <gridpane.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </gridpane.margin> </textfield> <choicebox fx:id="givespointschoicebox" maxwidth="1.7976931348623157e308" gridpane.columnindex="1" gridpane.hgrow="always" gridpane.rowindex="5"> <gridpane.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </gridpane.margin> <items> <fxcollections fx:factory="observablearraylist"> <string fx:value="no" /> <string fx:value="yes" /> </fxcollections> </items> <value> <string fx:value="yes" /> </value> </choicebox> <choicebox fx:id="gradingchoicebox" maxwidth="1.7976931348623157e308" gridpane.columnindex="1" gridpane.rowindex="2"> <gridpane.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </gridpane.margin> <items> <fxcollections fx:factory="observablearraylist"> <string fx:value="place" /> <string fx:value="time" /> <string fx:value="points" /> </fxcollections> </items> <value> <string fx:value="place" /> </value> </choicebox> </children> </gridpane> </items> </splitpane>

and second:

<?import javafx.geometry.*?> <?import javafx.scene.control.*?> <?import java.lang.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.layout.anchorpane?> <splitpane dividerpositions="0.5" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> <items> <vbox> <children> <tableview vbox.vgrow="always"> <columns> <tablecolumn prefwidth="75.0" text="c1" /> <tablecolumn prefwidth="75.0" text="c2" /> </columns> <vbox.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </vbox.margin> </tableview> <tableview vbox.vgrow="always"> <columns> <tablecolumn prefwidth="75.0" text="c1" /> <tablecolumn prefwidth="75.0" text="c2" /> </columns> <vbox.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </vbox.margin> </tableview> </children> </vbox> <gridpane> <columnconstraints> <columnconstraints /> <columnconstraints hgrow="never" minwidth="0.0" /> <columnconstraints hgrow="sometimes" minwidth="0.0" /> </columnconstraints> <rowconstraints> <rowconstraints minheight="0.0" vgrow="never" /> <rowconstraints minheight="0.0" vgrow="never" /> <rowconstraints minheight="0.0" vgrow="never" /> <rowconstraints minheight="0.0" vgrow="never" /> <rowconstraints minheight="10.0" prefheight="30.0" vgrow="never" /> <rowconstraints minheight="0.0" vgrow="sometimes" /> <rowconstraints minheight="0.0" vgrow="never" /> <rowconstraints minheight="0.0" vgrow="sometimes" /> <rowconstraints minheight="0.0" vgrow="never" /> </rowconstraints> <children> <label text="number" gridpane.columnindex="1"> <gridpane.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </gridpane.margin> </label> <label text="name" gridpane.columnindex="1" gridpane.rowindex="1"> <gridpane.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </gridpane.margin> </label> <label text="fee" gridpane.columnindex="1" gridpane.rowindex="2"> <gridpane.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </gridpane.margin> </label> <label text="membership" gridpane.columnindex="1" gridpane.rowindex="3"> <gridpane.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </gridpane.margin> </label> <textfield gridpane.columnindex="2"> <gridpane.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </gridpane.margin> </textfield> <textfield gridpane.columnindex="2" gridpane.rowindex="1"> <gridpane.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </gridpane.margin> </textfield> <vbox gridpane.columnindex="2" gridpane.rowindex="3"> <children> <radiobutton mnemonicparsing="false" text="current member"> <vbox.margin> <insets left="5.0" right="5.0" top="5.0" /> </vbox.margin> <togglegroup> <togglegroup fx:id="membershipgroup" /> </togglegroup> </radiobutton> <radiobutton mnemonicparsing="false" text="single membership" togglegroup="$membershipgroup"> <vbox.margin> <insets left="5.0" right="5.0" top="5.0" /> </vbox.margin> </radiobutton> <radiobutton mnemonicparsing="false" text="family membership" togglegroup="$membershipgroup"> <vbox.margin> <insets left="5.0" right="5.0" top="5.0" /> </vbox.margin> </radiobutton> <radiobutton mnemonicparsing="false" text="non-member" togglegroup="$membershipgroup"> <vbox.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </vbox.margin> </radiobutton> </children> </vbox> <tableview prefheight="200.0" prefwidth="200.0" gridpane.columnindex="1" gridpane.columnspan="2147483647" gridpane.rowindex="5"> <columns> <tablecolumn editable="false" maxwidth="1.7976931348623157e308" minwidth="-infinity" prefwidth="187.0" text="horses" /> </columns> <gridpane.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </gridpane.margin> </tableview> <tableview prefheight="200.0" prefwidth="200.0" gridpane.columnindex="1" gridpane.columnspan="2147483647" gridpane.rowindex="7"> <columns> <tablecolumn prefwidth="75.0" text="class number" /> <tablecolumn prefwidth="75.0" text="class name" /> </columns> <gridpane.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </gridpane.margin> </tableview> <hbox gridpane.columnindex="1" gridpane.columnspan="2147483647" gridpane.rowindex="6"> <children> <textfield hbox.hgrow="always"> <hbox.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </hbox.margin> </textfield> <button mnemonicparsing="false" text="button"> <hbox.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </hbox.margin> </button> </children> </hbox> <hbox alignment="center" gridpane.columnindex="1" gridpane.columnspan="2147483647" gridpane.rowindex="8" gridpane.valignment="center"> <children> <button alignment="center" mnemonicparsing="false" text="button" hbox.hgrow="always"> <hbox.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </hbox.margin> </button> <button alignment="center" mnemonicparsing="false" text="button" hbox.hgrow="always"> <hbox.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </hbox.margin> </button> </children> </hbox> <hbox prefheight="100.0" prefwidth="200.0" gridpane.columnindex="1" gridpane.columnspan="2147483647" gridpane.rowindex="4"> <children> <textfield hbox.hgrow="always"> <hbox.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </hbox.margin> </textfield> <button mnemonicparsing="false" text="add horse"> <hbox.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </hbox.margin> </button> </children> </hbox> <textfield gridpane.columnindex="2" gridpane.rowindex="2"> <gridpane.margin> <insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </gridpane.margin> </textfield> </children> </gridpane> </items> </splitpane>

sorry long code, , in advance help!

i think answering own question may bad form...but solution define 2 tabs fx:define , fx:include tags. fxml content can loaded. illustration below.

<tabpane maxheight="-infinity" maxwidth="-infinity" minheight="-infinity" minwidth="-infinity" prefheight="800.0" prefwidth="800.0" tabclosingpolicy="unavailable" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> <fx:define> <fx:include fx:id="grouppanecontent" source="grouppane.fxml" /> <fx:include fx:id="riderpanecontent" source="riderpane.fxml" /> </fx:define> <tabs> <tab closable="false" text="classes" content="$grouppanecontent" /> <tab closable="false" text="riders" content="$riderpanecontent" /> </tabs> </tabpane>

edit: fxml doesn't render correctly initially. have manually resize app show up. leave comment if know how prepare this

java javafx javafx-2 fxml fxmlloader

No comments:

Post a Comment