12 Replies Latest reply: Jan 8, 2013 6:44 PM by likejiujitsu RSS

    Scenebuilder not working with FXML that works fine otherwise

    963621
      Hi ~

      I'm using the Mac version of Scenebuilder (1.0), integrated with NetBeans, and although it works fine for simple (sample) apps, for my application it does not.

      IOW, I can run my application fine, looks great, but Scenebuilder gives the following error when I attempt to open the FXML file with Scenebuilder (rather than edit it with NetBeans):

      "Error loading file"

      "Cause is File is not a valid FXML file"

      How do I troubleshoot this? (Also, is there a thread or link that shows how to download and install over my current version with the latest 'trunk' version of Scenebuilder for Mac OS X -- Lion in my case -- to try out later builds?)

      Thanks
      ~ Brad

      PS UPDATE: What I'm running (w/JavaFX 2.2):

      Product Version: NetBeans IDE 7.2 (Build 201207171143)
      Java: 1.7.0_06; Java HotSpot(TM) 64-Bit Server VM 23.2-b09
      System: Mac OS X version 10.7.4 running on x86_64; US-ASCII; en_US (nb)

      Edited by: 960618 on Sep 21, 2012 10:32 AM
        • 1. Re: Scenebuilder not working with FXML that works fine otherwise
          daniel
          Hi Brad,

          Does the message contain any file/line number?
          If not then you will need to figure out what in your FXML makes SceneBuilder fails.
          First thing - make sure you're using the final SceneBuilder 1.0 FCS and not some earlier builds.
          Also take a look at the release notes and see whether your FXML uses some constructs which are not supported yet.
          For instance, SceneBuilder will only load FXML files whose root is a Node (or a Tab - although only the tab content will be modifiable).
          http://docs.oracle.com/javafx/scenebuilder/1/release_notes_1-0/jsbpub-release_notes_1-0.htm

          Alternatively - you could log a defect against SceneBuilder
          http://javafx-jira.kenai.com/browse/DTL
          If you can provide the offending file we will be able to find out the issue.

          If you really want to debug the issue by yourself then here is how to enable traces on Mac:

          If you have installed JavaFX SceneBuilder under /Applications, you should see that the package contains a logging.properties file.
          /Applications/JavaFX Scene Builder 1.0.app/Contents/Java/logging.properties

          Edit the file, and add the following logger:
          com.oracle.javafx.authoring.level = FINEST

          Restart scene builder (use Quit - not Close) - and try to load your file.

          Now you should be able to see a file named scenebuilder.log somewhere under /var/folders
          To find it the easiest way is to type the command below in a terminal:

          find /var/folders/ -name scenebuilder.log -print 2> /dev/null

          Have a look at the content of that file - hopefully there should be some exception/message that should give us some clue about what happened.

          Hope this helps,

          -- daniel
          • 2. Re: Scenebuilder not working with FXML that works fine otherwise
            963621
            Hi Daniel ~

            UPDATE: How do I check the version number of Scene Builder?? I just see 1.0 is all...

            No, no line numbers at all. Not sure what you mean by root being a Node. Mine's a Scene, of course, which I think is fine.

            Here's a rough cut at relevant snippets of my full FXML file (if you can load this in Scenebuilder--let me know--I could add back in a few more textfields, choiceboxes, etc.!):
            <Scene height="600" width="950" xmlns:fx="http://javafx.com/fxml" fx:controller="mypackage.MyController">
                <AnchorPane>
                <ImageView fitHeight="58.5" fitWidth="152.0" layoutX="15.0" layoutY="15.0" pickOnBounds="true" preserveRatio="true">
                  <image>
                    <Image url="@mygraphic.jpg" preserveRatio="false" smooth="false" />
                  </image>
                </ImageView>
                <Label fx:id="label1" alignment="CENTER" contentDisplay="CENTER" layoutX="167.0" layoutY="15.0" minHeight="16.0" minWidth="583.0" prefHeight="33.0" prefWidth="304.0" text="my title text" textFill="#004166">
                  <font>
                    <Font name="Optima Bold" size="28.0" />
                  </font>
                </Label>
                <Label id="label2" alignment="CENTER" contentDisplay="CENTER" layoutX="167.0" layoutY="48.0" minHeight="16.0" minWidth="583.0" prefHeight="33.0" prefWidth="302.0" text="my subtitle">
                  <font>
                    <Font name="Optima Bold Italic" size="22.0" />
                  </font>
                  <textFill>
                    <Color blue="0.400" green="0.255" red="0.000" fx:id="x1" />
                  </textFill>
                </Label>
                <VBox id="VBox" alignment="CENTER" layoutX="0.0" layoutY="104.0" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefWidth="217.0" spacing="4.0">
                  <children>
                    <Label id="myLabel"   alignment="CENTER_RIGHT" contentDisplay="CENTER" font="$x2" minHeight="-Infinity" minWidth="-Infinity" prefHeight="22.0" prefWidth="185.0" text="label text:" textFill="$x1" VBox.vgrow="SOMETIMES" />
                  </children>
                </VBox>
                <VBox id="VBox" alignment="CENTER" layoutX="202.0" layoutY="104.0" prefHeight="235.0" spacing="4.0">
                  <children>
                    <ChoiceBox fx:id="myChoiceBox" minHeight="-Infinity" minWidth="-Infinity" prefHeight="22.0" prefWidth="240.0" />
                    <TextField fx:id="myTextField" minHeight="-Infinity" minWidth="-Infinity" prefHeight="28.0" prefWidth="240.0" promptText="myPromptText" />
                  </children>
                </VBox>
                  <Button layoutX="40" layoutY="505" text="Detect" onAction="#handleDetect" fx:id="buttonDetect" />
                  <TextArea layoutX="465" layoutY="104" minHeight="390" minWidth="450" fx:id="textAreaLog" />
                  <TextArea layoutX="465" layoutY="503" minHeight="55" minWidth="450" prefHeight="56" prefWidth="450" fx:id="textAreaMessage" promptText="Notifications" />
              </AnchorPane>
            </Scene>
            And here's my debug output (with name of app, package, etc. changed to protect the guilty!):
            Sep 24, 2012 1:36:19 PM com.oracle.javafx.authoring.util.Utils println
            FINE: Received some args 1
            Sep 24, 2012 1:36:19 PM com.oracle.javafx.authoring.util.Utils println
            FINE: /Users/brad/NetBeansProjects/MyProject/src/mypackage/MyFXMLFile.fxml
            Sep 24, 2012 1:36:20 PM com.oracle.javafx.authoring.util.Utils println
            FINE: Failed to load /Users/brad/NetBeansProjects/MyProject/src/mypackage/MyFXMLFile.fxml
            java.lang.IllegalArgumentException: File is not a valid FXML file: /Users/brad/NetBeansProjects/MyProject/src/mypackage/MyFXMLFile.fxml
                    at com.oracle.javafx.authoring.persist.LoadFxml.loadElement(LoadFxml.java:150)
                    at com.oracle.javafx.authoring.persist.LoadFxml.loadScreenData(LoadFxml.java:182)
                    at com.oracle.javafx.authoring.Project.forFxml(Project.java:802)
                    at com.oracle.javafx.authoring.Project.forFxml(Project.java:770)
                    at com.oracle.javafx.authoring.DesignerTool.commonInit(DesignerTool.java:352)
                    at com.oracle.javafx.authoring.DesignerTool.initFromRemote(DesignerTool.java:298)
                    at com.oracle.javafx.authoring.MacSceneBuilderLauncher$1.handleOpenFilesAction(MacSceneBuilderLauncher.java:51)
                    at com.sun.glass.ui.Application.notifyOpenFiles(Application.java:217)
                    at com.sun.glass.ui.Application.setEventHandler(Application.java:247)
                    at com.oracle.javafx.authoring.MacSceneBuilderLauncher.launch(MacSceneBuilderLauncher.java:34)
                    at com.oracle.javafx.authoring.Main.start(Main.java:49)
                    at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:319)
                    at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:206)
                    at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:173)
                    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:76)
            
            Sep 24, 2012 1:36:20 PM com.oracle.javafx.authoring.util.Utils println
            FINE: java.lang.IllegalArgumentException: File is not a valid FXML file: /Users/brad/NetBeansProjects/MyProject/src/mypackage/MyFXMLFile.fxml
            Let me know if this helps you get me past this--happy to file a bug report if you'd like too.

            ~ Brad

            Edited by: 960618 on Sep 24, 2012 1:58 PM
            Added version number Q.
            • 3. Re: Scenebuilder not working with FXML that works fine otherwise
              jsmith
              How do I check the version number of Scene Builder?
              Clicking on the Help | About menu in SceneBuilder gives me lots of useful information:
              Product Version
              JavaFX Scene Builder 1.0
              
              Build Information
              Version: 1.0-b50, Changeset: 22db15834430
              Date: 2012-08-07 16:33
              
              JavaFX
              2.2.0-b21
              Toolkit = QuantumToolkit
              Pipeline = D3DPipeline
              Hardware acceleration ENABLED
              
              Operating System
              Windows 7, amd64, 6.1
              
              Java Version
              1.8.0-ea, Oracle Corporation, 1.8.0-ea-b54
              • 4. Re: Scenebuilder not working with FXML that works fine otherwise
                daniel
                Hi,

                That's precisely what I meant: your root FXML element is a Scene. SceneBuilder can only load FXML whose root element is a subclass of Node or Tab.
                To work around that you could use two FXML file: a 'top-level' FXML file whose root node would be Scene - which would include a nested FXML whose root node would be the Scene's root node. If you do that you should be able to load the nested FXML in SceneBuilder.

                It is strange that the dialog does not give you any clue - I shall need to investigate that. I expected you would see some message (possibly not internationalized) saying that the root element was expected to be Node or Tab. That information must have been swallowed somewhere.

                Hope this helps,

                -- daniel
                • 5. Re: Scenebuilder not working with FXML that works fine otherwise
                  jsmith
                  I edited your sample fxml and made some changes (replaced the commented out lines other lines) which allowed the fxml to at least load in SceneBuilder.
                  <?xml version="1.0" encoding="UTF-8"?>
                  
                  <?import java.lang.*?>
                  <?import java.util.*?>
                  <?import javafx.scene.*?>
                  <?import javafx.scene.control.*?>
                  <?import javafx.scene.layout.*?>
                  <?import javafx.scene.image.*?>
                  <?import javafx.scene.text.*?>
                  <?import javafx.scene.paint.*?>
                  
                  <AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="1000.0" xmlns:fx="http://javafx.com/fxml">
                    <ImageView fitHeight="58.5" fitWidth="152.0" layoutX="15.0" layoutY="15.0" pickOnBounds="true" preserveRatio="true">
                    <image>
                      <Image url="@mygraphic.jpg" preserveRatio="false" smooth="false" />
                    </image>
                    </ImageView>
                  <!--  <Label fx:id="label1" alignment="CENTER" contentDisplay="CENTER" layoutX="167.0" layoutY="15.0" minHeight="16.0" minWidth="583.0" prefHeight="33.0" prefWidth="304.0" text="my title text" textFill="#004166">-->
                    <Label id="label1" alignment="CENTER" contentDisplay="CENTER" layoutX="167.0" layoutY="15.0" minHeight="16.0" minWidth="583.0" prefHeight="33.0" prefWidth="304.0" text="my title text" textFill="#004166">
                      <font>
                        <Font name="Optima Bold" size="28.0"/>
                      </font>
                    </Label>
                    <Label id="label2" alignment="CENTER" contentDisplay="CENTER" layoutX="167.0" layoutY="48.0" minHeight="16.0" minWidth="583.0" prefHeight="33.0" prefWidth="302.0" text="my subtitle">
                      <font>
                        <Font name="Optima Bold Italic" size="22.0"/>
                      </font>
                      <textFill>
                  <!--      <Color blue="0.400" green="0.255" red="0.000" fx:id="x1" />-->
                        <Color blue="0.400" green="0.255" red="0.000" />
                      </textFill>
                    </Label>
                    <VBox id="VBox" alignment="CENTER" layoutX="0.0" layoutY="104.0" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefWidth="217.0" spacing="4.0">
                      <children>
                  <!--      <Label id="myLabel"   alignment="CENTER_RIGHT" contentDisplay="CENTER" font="$x2" minHeight="-Infinity" minWidth="-Infinity" prefHeight="22.0" prefWidth="185.0" text="label text:" textFill="$x1" VBox.vgrow="SOMETIMES" />-->
                        <Label id="myLabel"   alignment="CENTER_RIGHT" contentDisplay="CENTER" font="$x2" minHeight="-Infinity" minWidth="-Infinity" prefHeight="22.0" prefWidth="185.0" text="label text:" VBox.vgrow="SOMETIMES" />
                      </children>
                    </VBox>
                    <VBox id="VBox" alignment="CENTER" layoutX="202.0" layoutY="104.0" prefHeight="235.0" spacing="4.0">
                      <children>
                        <ChoiceBox id="myChoiceBox" minHeight="-Infinity" minWidth="-Infinity" prefHeight="22.0" prefWidth="240.0" />
                        <TextField id="myTextField" minHeight="-Infinity" minWidth="-Infinity" prefHeight="28.0" prefWidth="240.0" promptText="myPromptText" />
                  <!--      <ChoiceBox fx:id="myChoiceBox" minHeight="-Infinity" minWidth="-Infinity" prefHeight="22.0" prefWidth="240.0" />
                        <TextField fx:id="myTextField" minHeight="-Infinity" minWidth="-Infinity" prefHeight="28.0" prefWidth="240.0" promptText="myPromptText" />-->
                      </children>
                    </VBox>
                  <!--    <Button layoutX="40" layoutY="505" text="Detect" onAction="#handleDetect" fx:id="buttonDetect" />
                      <TextArea layoutX="465" layoutY="104" minHeight="390" minWidth="450" fx:id="textAreaLog" />
                      <TextArea layoutX="465" layoutY="503" minHeight="55" minWidth="450" prefHeight="56" prefWidth="450" fx:id="textAreaMessage" promptText="Notifications" />-->
                      <Button layoutX="40" layoutY="505" text="Detect" onAction="#handleDetect" id="buttonDetect" />
                      <TextArea layoutX="465" layoutY="104" minHeight="390" minWidth="450" id="textAreaLog" />
                      <TextArea layoutX="465" layoutY="503" minHeight="55" minWidth="450" prefHeight="56" prefWidth="450" id="textAreaMessage" promptText="Notifications" />
                      
                  </AnchorPane>
                  While I was doing it SceneBuilder kept up popping up a number of error messages when it couldn't load it. Useful error messages were the ones which told you that you were missing an import (an autofix feature on the missing import might be a nice to have thing - I seem to recall NetBeans saying they might add extra editing features for fxml which included that). Another useful error message was when the line number of the error was reported, then at least the error could be localized. When the column number was reported with the line number it was usually the last column in the line and not the column index of the specific attribute in error, so that was less useful. Some of the error messages which were generated included fxml attribute info and that wasn't all that clear. Only one error message at a time was reported, rather than all errors in the file leading to a few fix edit and reload cycles. The automatic reloading in SceneBuilder of the file edited in NetBeans made these reload cycles pretty instantaneous which was nice.

                  The most useless error spat out by SceneBuilder was the following:
                  Error loading file 'C:\dev\javafx\JavaFXSamples\src\SceneTest_1.fxml'.
                  C:\dev\javafx\JavaFXSamples\src\SceneTest_1.fxml:0: error: 
                       java.lang.ArrayIndexOutOfBoundsException: -1
                  The above was reported because i placed an xml comment at the end of an otherwise perfectly good fxml file . . . who would have thought . . .
                  • 6. Re: Scenebuilder not working with FXML that works fine otherwise
                    963621
                    Thanks JSmith and Daniel.

                    Yup. I so rarely start it up anymore and get it to work--I'd given up (and when it doesn't work, all you get is File | Quit as options, with the version number only listed, as SceneBuilder 1.0) ...

                    But indeed, when I start it with an FXML that works, then I get Help | About. You might want to fix that too, Daniel! So when it reports error on startup users get a Help | About menu item too... ;-)

                    Anyway, here is my version information, in case this is of help in diagnosing the issue (of why it's not giving a more informative message):
                    Product Version
                    JavaFX Scene Builder 1.0
                    
                    Build Information
                    Version: 1.0-b50, Changeset: 22db15834430
                    Date: 2012-08-07 16:58
                    
                    JavaFX
                    2.2.0-b21
                    Toolkit = QuantumToolkit
                    Pipeline = ES2Pipeline
                    Hardware acceleration ENABLED
                    
                    Operating System
                    Mac OS X, x86_64, 10.7.4
                    
                    Java Version
                    1.7.0_06, Oracle Corporation, 1.7.0_06-b23
                    All it says is the two lines I gave in my first/original post, with the two lines followed by the FXML file name, as in:
                    Error loading file '/Users/brad/NetBeansProjects/MyProject/src/mypackage/MyFXMLFile.fxml'.
                    Cause is File is not a valid FXML file: /Users/brad/NetBeansProjects/MyProject/src/mypackage/MyFXMLFile.fxml
                    HTHs.

                    As for how to fix it, if I understand you correctly, you're saying I need to create two FXML files, one that looks something like:
                    <Scene xmlns:fx="http://javafx.com/fxml">
                      <fx:include fx:id="myAnchorPane" source="myAnchorPane.fxml" />
                    </Scene>
                    Then another one that looks something like:
                    <AnchorPane fx:id="myAnchorPane" xmlns:fx="http://javafx.com/fxml" fx:controller="mypackage.MyController"> [ ... rest of my FXML file ... ] </AnchorPane>
                    I've tried that, but get a "Can not set javafx.scene.Scene field mypackage.MyController.myAnchorPane to javafx.scene.layout.AnchorPane" error (there's a typo there, btw: 'can not' should be 'cannot').

                    Please be as explicit in your reply as possible, if you would. I'm sure I'm just forgetting something like 'fx:root' somewhere!

                    Thanks
                    ~ Brad
                    • 7. Re: Scenebuilder not working with FXML that works fine otherwise
                      963621
                      Sorry, our replies crossed JSmith, or should I say "J...ls.a" ;-)

                      Thanks.

                      The strange thing is that the FXML file works just fine in my application. So when you say, "While I was doing it SceneBuilder kept up popping up a number of error messages when it couldn't load it." that's great for you, but for me the only error message I got was the even more uninformative one that I put in my first post (and in more detail in my last post).

                      I'm still stumped as to what my Scene (base, parent) FXML needs to have in it. But none of this is holding me up, because I can hand-edit the FXML just fine--been doing it for a couple weeks! UPDATE: I suppose perhaps I also need to do something like described here by Irina, in my main application: http://docs.oracle.com/javafx/2/fxml_get_started/custom_control.htm#BABIGDEH (although I still am unclear exactly what it is I should be doing)

                      I'm actually much more interested in getting this question answered (my 2 comments answered): http://stackoverflow.com/questions/12539778/javafx-2-2-modal-window-dialog-with-fxml (If you have any extra time--see my two comments on the answer there!)

                      ~ Brad

                      Edited by: 960618 on Sep 24, 2012 4:50 PM

                      Added update with link to OTN article by Irina.
                      • 8. Re: Scenebuilder not working with FXML that works fine otherwise
                        daniel
                        Hi Brad,

                        First you'll be glad to know that the uninformative error message had already been fixed for some times. In the dev trunk it now says:
                             java.lang.IllegalArgumentException:  FXML root element is not a Tab or a Node
                        Also I have logged your suggestion for the About menu: http://javafx-jira.kenai.com/browse/DTL-5274
                        DTL-5274: When SceneBuilder fails to load an FXML file, an alert dialog is displayed. However the menu bar only contains 'Quit'. It would be helpful if it also had 'Help > About'.

                        Concerning how to split your FXML file in two - here is a very small example.
                        Assuming you are familiar with the HelloWorld sample that comes with SceneBuilder, here is how I modified it to use 2 FXML files, with a top-level one whose root element is a Scene.
                        (the original samples can be downloaded here: http://www.oracle.com/technetwork/java/javafx/downloads/index.html)

                        I created a new file called SceneHelloWorld.fxml which creates a Scene and includes HelloWorld.fxml
                        I created a SceneHelloWorldController.java for the top level SceneHelloWorld FXML - that was not strictly necessary, it's just to demonstrate how you can get a handle on the nested controller (HelloWorldController).
                        I modified Main.java to load SceneHelloWorld.fxml instead of HelloWorld.fxml - and expect a Scene instead of an AnchorPane.

                        Of course SceneHelloWorld.fxml still cannot be loaded in SceneBuilder - but the scene's root node - which is in its own FXML file can be edited with SceneBuilder.


                        SceneHelloWorld.fxml:
                        <?xml version="1.0" encoding="UTF-8"?>
                        
                        <?import java.lang.*?>
                        <?import java.util.*?>
                        <?import javafx.scene.*?>
                        
                        <Scene fx:id="scene" xmlns:fx="http://javafx.com/fxml" fx:controller="helloworld.SceneHelloWorldController">
                            <fx:include fx:id="root" source="HelloWorld.fxml"/>
                        </Scene>
                        SceneHelloWorldController.java:
                        package helloworld;
                        
                        import javafx.fxml.FXML;
                        import javafx.scene.Node;
                        import javafx.scene.Scene;
                        
                        public class SceneHelloWorldController {
                            @FXML
                            private Scene scene; // the FXML root element identified by fx:id="scene";
                            
                            @FXML
                            private Node root; // The scenegraph root identified by fx:id="root"
                            
                            @FXML
                            private HelloWorldController rootController; // The controller of the scenegraph root. 
                               // The name of this variable must be '<root-fx-id>Controller' (in our case that makes
                               // 'rootController')
                            
                            @FXML
                            private void initialize() {
                                assert root != null : "root was not injected! Does your FXML contains an element with fx:id=\"root\"?";
                                assert rootController != null : "rootController was not injected!  Does your FXML contains a node with fx:id=\"root\"?";
                                assert scene != null : "scene was not injected! Does your FXML contains an element with fx:id=\"scene\"?";
                                
                                // here you can access rootController if you need to... For instance,
                                // if you need to pass it the value of the 'scene' variable...
                            }
                        }
                        In Main.java I only changed the start(...) method
                            @Override
                            public void start(Stage primaryStage) {
                                try {
                                    Scene scene = (Scene) FXMLLoader.load(Main.class.getResource("SceneHelloWorld.fxml"));
                                    primaryStage.setScene(scene);
                                    primaryStage.setTitle("Hello World Sample");
                                    primaryStage.show();
                                } catch (Exception ex) {
                                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                                }
                            }
                        The other files I left unchanged.

                        Does that makes sense?

                        regards,

                        -- daniel

                        Edited by: daniel on Sep 25, 2012 6:41 AM
                        • 9. Re: Scenebuilder not working with FXML that works fine otherwise
                          963621
                          Yes Daniel, that makes a lot of sense (except for the fact that "Scene Builder" can't have a scene as a root element!) ... Perhaps as I delve more into FXML, it'll become clear why this limitation is present.

                          Your example is very helpful--Thanks!

                          Thanks also for reporting my suggestion... Also, is there a link that shows how to grab the latest Scene Builder from trunk? Or better to just wait until it's released in a stable version?

                          Cheers!
                          • 10. Re: Scenebuilder not working with FXML that works fine otherwise
                            daniel
                            Hi,

                            Well, if you want the gory details - SceneBuilder loads the FXML, and then needs to display the loaded objects in its own content view. This is easy when the root element is a node, because we can just insert it in our own scenegraph. However there's no way to insert a Scene inside a scenegraph belonging to another scene. That would require some tricks - especially to handle any stylesheet that the loaded scene might have....

                            I think this should be feasible - but it will require some time & testing...

                            The latest public version of SceneBuilder is SceneBuilder 1.0 FCS.

                            Best regards - and thanks for using SceneBuilder - it helps us a lot to get such bug reports - it should make for a much better product in the end!

                            -- daniel
                            • 11. Re: Scenebuilder not working with FXML that works fine otherwise
                              963621
                              Good to know--not too gory--yeah, it would be worthwhile fixing that, if possible. As for the error message being helpful, perhaps it should link to your answer on this post too?! I don't know that "FXML root element is not a Tab or a Node" would make it particularly clear to this newbie anyway... Perhaps, "FXML root element is not a Tab or Node. SceneBuilder's root element cannot be a Scene (for instance), it must be a Tab or Node." Which would then at least allow me to google 'scenebuilder node' and/or 'scenebuilder scene tab node' and hopefully find my way to this post...

                              I also don't know what SceneBuilder 1.0 FCS means, but I assume it means this one:

                              Version: 1.0-b50, Changeset: 22db15834430
                              Date: 2012-08-07 16:58

                              Thanks again!
                              • 12. Re: Scenebuilder not working with FXML that works fine otherwise
                                likejiujitsu
                                "Of course SceneHelloWorld.fxml still cannot be loaded in SceneBuilder - but the scene's root node - which is in its own FXML file can be edited with SceneBuilder"

                                Please show us the fxml file.