gpt4 book ai didi

java - 单击菜单项时如何显示 JavaFX Web View ?

转载 作者:行者123 更新时间:2023-11-30 05:59:36 25 4
gpt4 key购买 nike

在我的应用程序中,我希望用户能够单击菜单项并显示一个新窗口。但是,当我运行代码时,它说您可以从菜单项打开一个新窗口。所以我的问题是,是否有其他解决方法或其他更简单的方法可以帮助我实现我的目标。感谢您的帮助。

P.S --> 我之前曾发布过类似的问题,但在复制我拥有的正确代码时犯了一个错误。这是我得到的正确错误和代码。

代码:

    /**
* When the Logger menu item is clicked, then it will execute and make a new window
* @param actionEvent
* @throws Exception
*/
public void clickedLoggerMenu(ActionEvent actionEvent) throws Exception {
//The name of the controller
FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/viewer_logger.fxml"));
Parent home_page = (Parent) loader.load();

LoggerController logController = loader.getController();

//this sets the scene
Scene home_page_scene = new Scene(home_page, 650, 580);
Stage app_stage = (Stage) ((Node) actionEvent.getSource()).getScene().getWindow();
app_stage.setScene(home_page_scene);
app_stage.show();

}

异常(exception):

Caused by: java.lang.ClassCastException: javafx.controls@10.0.1/javafx.scene.control.MenuItem cannot be cast to javafx.graphics@10.0.1/javafx.scene.Node
at controller.SubmitController.clickedLoggerMenu(SubmitController.java:99)

最佳答案

问题在于您如何尝试创建舞台:

Stage app_stage = (Stage) ((Node) actionEvent.getSource()).getScene().getWindow();

您正在尝试将 MenuItem 转换为 Node,但这不是它的工作方式。

无论如何,您还需要创建一个新的Stage,因此不要尝试获取原始的Window

Stage app_stage = new Stage()

然后从那里构建场景

旁注:我建议阅读一些优秀的 JavaFX 教程来学习基础知识。

关于java - 单击菜单项时如何显示 JavaFX Web View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52485611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com