2016-06-20 14 views
1

Ich entwickle eine JavaFX-Anwendung mit IntelliJ IDEA und Scene Builder. Um eine Combobox mit Mehrfachselektion zu erstellen, habe ich die controlsfx.jar-Bibliothek sowohl in den Szenengenerator als auch in mein Projekt importiert und plane, das von ihnen bereitgestellte CheckComboBox-Steuerelement zu verwenden, wie vorgeschlagen here.Wie öffne ich eine FXML-Datei im Szenen-Generator, nachdem ich ein nicht unterstütztes CheckComboBox-Steuerelement hinzugefügt habe?

Beim Importieren der Bibliothek in den Szenengenerator gehörte das CheckComboBox-Steuerelement nicht zu den geladenen Steuerelementen. Also habe ich die FXML-Datei bearbeitet und durch geschriebenen Code eingefügt.

Leider, nachdem ich dies getan habe kann ich nicht mehr die FXML-Datei im Szenen-Generator öffnen. Dieser Fehler tritt auf, wenn ich versuche, es von IntelliJ IDEA direkt zu öffnen:

java.io.IOException: javafx.fxml.LoadException: 
/D:/Idea%20Projects/Danube/src/sample/first.fxml 

    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMLoader.load(FXOMLoader.java:92) 
    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.<init>(FXOMDocument.java:80) 
    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.<init>(FXOMDocument.java:95) 
    at com.oracle.javafx.scenebuilder.kit.editor.EditorController.updateFxomDocument(EditorController.java:2370) 
    at com.oracle.javafx.scenebuilder.kit.editor.EditorController.setFxmlTextAndLocation(EditorController.java:655) 
    at com.oracle.javafx.scenebuilder.app.DocumentWindowController.loadFromFile(DocumentWindowController.java:386) 
    at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.performOpenFiles(SceneBuilderApp.java:579) 
    at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.handleOpenFilesAction(SceneBuilderApp.java:447) 
    at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.handleLaunch(SceneBuilderApp.java:427) 
    at com.oracle.javafx.scenebuilder.app.AppPlatform.requestStartGeneric(AppPlatform.java:139) 
    at com.oracle.javafx.scenebuilder.app.AppPlatform.requestStart(AppPlatform.java:106) 
    at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.start(SceneBuilderApp.java:371) 
    at com.sun.javafx.application.LauncherImpl$8.run(LauncherImpl.java:837) 
    at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:335) 
    at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:301) 
    at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:298) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:298) 
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) 
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) 
    at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39) 
    at com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112) 
    at java.lang.Thread.run(Thread.java:744) 
Caused by: javafx.fxml.LoadException: 
/D:/Idea%20Projects/Danube/src/sample/first.fxml 

    at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2617) 
    at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2864) 
    at javafx.fxml.FXMLLoader.processImport(FXMLLoader.java:2708) 
    at javafx.fxml.FXMLLoader.processProcessingInstruction(FXMLLoader.java:2677) 
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2517) 
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2425) 
    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMLoader.load(FXOMLoader.java:89) 
    ... 22 more 
Caused by: java.lang.ClassNotFoundException: org.controlsfx.control.CheckComboBox 
    at java.lang.ClassLoader.findClass(ClassLoader.java:530) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at javafx.fxml.FXMLLoader.loadTypeForPackage(FXMLLoader.java:2932) 
    at javafx.fxml.FXMLLoader.loadType(FXMLLoader.java:2921) 
    at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2862) 
    ... 27 more 

Als ich die ersten Scene Builder ausführen und versuchen, die Datei von dort zu öffnen, bekomme ich diesen Fehler:

java.io.IOException: javafx.fxml.LoadException: 
/D:/Idea%20Projects/Danube/src/sample/first.fxml:39 

    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMLoader.load(FXOMLoader.java:92) 
    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.<init>(FXOMDocument.java:80) 
    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.<init>(FXOMDocument.java:95) 
    at com.oracle.javafx.scenebuilder.kit.editor.EditorController.updateFxomDocument(EditorController.java:2370) 
    at com.oracle.javafx.scenebuilder.kit.editor.EditorController.setFxmlTextAndLocation(EditorController.java:655) 
    at com.oracle.javafx.scenebuilder.app.DocumentWindowController.loadFromFile(DocumentWindowController.java:386) 
    at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.performOpenFiles(SceneBuilderApp.java:579) 
    at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.performOpenRecent(SceneBuilderApp.java:272) 
    at com.oracle.javafx.scenebuilder.app.menubar.MenuBarController$21.handle(MenuBarController.java:1188) 
    at com.oracle.javafx.scenebuilder.app.menubar.MenuBarController$21.handle(MenuBarController.java:1183) 
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) 
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) 
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) 
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) 
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) 
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) 
    at javafx.event.Event.fireEvent(Event.java:204) 
    at javafx.scene.control.MenuItem.fire(MenuItem.java:462) 
    at com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItemContainer.doSelect(ContextMenuContent.java:1344) 
    at com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItemContainer.doSelect(ContextMenuContent.java:1319) 
    at com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItemContainer$7.handle(ContextMenuContent.java:1287) 
    at com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItemContainer$7.handle(ContextMenuContent.java:1285) 
    at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218) 
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) 
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) 
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) 
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) 
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) 
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) 
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) 
    at javafx.event.Event.fireEvent(Event.java:204) 
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3746) 
    at javafx.scene.Scene$MouseHandler.access$1800(Scene.java:3471) 
    at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1695) 
    at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2486) 
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:314) 
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:243) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:345) 
    at com.sun.glass.ui.View.handleMouseEvent(View.java:526) 
    at com.sun.glass.ui.View.notifyMouse(View.java:898) 
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) 
    at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39) 
    at com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112) 
    at java.lang.Thread.run(Thread.java:744) 
Caused by: javafx.fxml.LoadException: 
/D:/Idea%20Projects/Danube/src/sample/first.fxml:39 

    at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2617) 
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2595) 
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2425) 
    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMLoader.load(FXOMLoader.java:89) 
    ... 52 more 
Caused by: java.lang.RuntimeException: ControlsFX Error: ControlsFX 8.40.10 requires at least Java Version 8 Update 40 
    at impl.org.controlsfx.version.VersionChecker.doVersionCheck(VersionChecker.java:96) 
    at org.controlsfx.control.ControlsFXControl.<init>(ControlsFXControl.java:35) 
    at org.controlsfx.control.CheckComboBox.<init>(CheckComboBox.java:113) 
    at org.controlsfx.control.CheckComboBox.<init>(CheckComboBox.java:104) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:408) 
    at java.lang.Class.newInstance(Class.java:433) 
    at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:51) 
    at javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(FXMLLoader.java:1010) 
    at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:740) 
    at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2723) 
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527) 
    ... 54 more 

Obwohl ich habe Java Version 8 Update 91 ...

Ich würde wirklich gerne weiterhin mit Scene Builder arbeiten. Was könnte ich dagegen tun?

Vielen Dank!

+0

Erfolgt dies auch, wenn Sie den ersten Szenengenerator öffnen und die FXML-Datei von dort laden, anstatt von IntelliJ zu öffnen? –

+0

Ja, es passiert in beiden Richtungen. – Ionna

+0

Was ist deine Scene Builder-Version? –

Antwort