这是我原来的帖子:
我有一个用NetBeans 8 / Java8 / JavaFX构建的应用程序。 (注意我没有SceneBuilder)
我的主应用程序窗口正常运行。我有一个菜单项调用以下函数来打开第二个窗口:
@FXML
private void openChildWindowAlt() throws Exception {
Group root = new Group();
Stage stage = new Stage();
AnchorPane frame = FXMLLoader.load(getClass().getResource("fxml_childWindow1.fxml"));
root.getChildren().add(frame);
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
当我选择菜单按钮时,我的第二阶段按预期显示,但我得到以下异常:
线程“JavaFX Application Thread”中的异常java.lang.IllegalArgumentException:null source
at java.util.EventObject.<init>(EventObject.java:56)
at java.awt.AWTEvent.<init>(AWTEvent.java:337)
at sun.awt.UngrabEvent.<init>(UngrabEvent.java:48)
at javafx.embed.swing.SwingNode$10.handle(SwingNode.java:414)
at javafx.embed.swing.SwingNode$10.handle(SwingNode.java:410)
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.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.event.Event.fireEvent(Event.java:204)
....还有更多,更多......希望这足以让有人帮忙。
我也尝试过以下操作,导致相同的异常:
@FXML private void openChildWindow()抛出异常{
Stage stage = new Stage();
AnchorPane root = new AnchorPane();
TabPane myTabPane = new TabPane();
Tab tab1 = new Tab("blue");
Tab tab2 = new Tab("purple");
myTabPane.getTabs().addAll(tab1,tab2);
root.getChildren().add(myTabPane);
stage.setScene(new Scene(root,1200,800));
stage.show();
}
发布上述内容之后,我回到应用程序并意识到我不仅在打开这些窗口时,而且在任何菜单项的任意点击时都会出现此异常,无论菜单项是什么。
有什么想法吗?
谢谢!
-Adeena
答案 0 :(得分:1)
我的猜测是,您使用的是SwingUtilities.invokeLater。这不适用于JavaFX。你应该使用Platform.runLater。