Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 确定单击菜单项的窗口_Java_Javafx 8 - Fatal编程技术网

Java 确定单击菜单项的窗口

Java 确定单击菜单项的窗口,java,javafx-8,Java,Javafx 8,玩我的第一个JavaFX应用程序。在Java8上运行它,但这不应该是这个问题的问题 我的问题是: 我有一个场景(FXML),其中有一个菜单和菜单项。按下菜单项时,将显示一个新窗口或弹出窗口。这很好,但我想在新窗口处于活动状态时禁用父窗口。我想这是可能的。 我真正的问题是:从我收到的动作事件中确定父窗口。因为事件来自菜单项,所以看起来有点问题。可能是个很愚蠢的问题 我的代码片段: Stage stage = new Stage(); Parent root = FXMLLoader.load(Eb

玩我的第一个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();
将源强制转换为节点会导致类强制转换异常。但我不知道该走哪条路


谢谢。

我已经摆弄了一段时间,但没有成功。 最后,我使用以下代码完成了它:

@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();

不是我喜欢的那种方式。但是它是有效的。

你会得到什么例外?您是否尝试过调试如何从事件源访问该节点?这是一个类强制转换异常,表示无法将MenuItem强制转换为节点。请查看此线程:是。从这个线程中,我得到了当前的非工作解决方案。问题在于菜单的行为与普通按钮不同。