2014-01-29 64 views
0

玩我的第一个JavaFX应用程序。在Java8上运行它,但这不应该成为这个问题的一个问题。确定点击菜单项的窗口

我的问题: 我有一个场景(FXML),其中存在一个菜单和菜单项。当你按下菜单项时,应该显示一个新的窗口或弹出窗口。这工作得很好,但我想在新窗口处于活动状态时禁用父窗口。通过模态发现这是可能的。 我真正的问题是:从我收到的操作事件中确定父窗口。因为事件来自菜单项,所以看起来有点问题。可能是一个非常愚蠢的问题。

我的代码片段:

Stage stage = new Stage(); 
Parent root = FXMLLoader.load(EbooksdownloaderController.class.getResource("about.fxml")); 
stage.setScene(new Scene(root)); 
stage.initModality(Modality.WINDOW_MODAL); 
stage.initOwner(((Node)event.getSource()).getScene().getWindow()); 
stage.show(); 

铸造源节点给出一类铸件例外。但是我不知道要走哪条路。

谢谢。

+0

你得到的例外是什么?你有没有尝试过调试你如何从事件源访问节点? – rlegendi

+0

这是一个类转换异常,指出MenuItem不能转换为节点。 – Pattux

+0

看看这个线程:http://stackoverflow.com/questions/10486731/how-to-create-a-modal-window-in-javafx-2-1 – rlegendi

回答

0

已经摆弄了一段时间没有任何成功。 作为最后的手段,我完成它使用下面的代码:

@FXML 
private AnchorPane ap; 

Stage stage = new Stage(); 
Parent root = FXMLLoader.load(EbooksdownloaderController.class.getResource("about.fxml")); 
stage.setScene(new Scene(root)); 
stage.initModality(Modality.WINDOW_MODAL); 
stage.initOwner(ap.getScene().getWindow()); 
stage.show(); 

不是真的这样,我宁愿。但它的工作。