当前位置: 首页 > 面试题库 >

如何从控制器类打开JavaFX FileChooser?

龚凯泽
2023-03-14
问题内容

我的问题是所有使用示例都FileChooser需要您通过一个阶段。唯一的问题是,我的UI是在fxml文件中定义的,该文件使用与主阶段分离的控制器类。

@FXML protected void locateFile(ActionEvent event) {
    FileChooser chooser = new FileChooser();
    chooser.setTitle("Open File");
    chooser.showOpenDialog(???);
}

我该怎么做???才能使其正常工作?就像我说的那样,我在控制器类中没有任何阶段的引用,那我该怎么办?


问题答案:

对于场景中的任何节点(例如,根节点;但是注入的任何节点都@FXML可以),请执行

chooser.showOpenDialog(node.getScene().getWindow());


 类似资料:
  • 我正在设计一款跳棋游戏,一旦游戏结束,一个新窗口就会打开,你可以开始一个新游戏,也可以退出。我对JavaFX了解不多,我一直在努力让我的代码正常工作,但我没有成功。。。 我有一个困难,我的电路板没有显示为fxml文件,但它是用Java代码创建的,并放在我的边框窗格的中心。边框窗格的顶部是fxml文件。然后,游戏结束后的另一个窗口也是另一个fxml文件: 这个fxml文件的Controller类如下

  • 问题内容: 除了脚本自己的控制台 (不执行任何操作)之外, 我想打开两个控制台并打印变量,并在不同的控制台中,如何实现此目的。 我不知道如何实现这一目标,并花了几个小时尝试使用诸如但没有运气的模块来实现这一目标。顺便说一下,我在窗户上。 请问模块做的工作?还是需要? 问题答案: 如果您不想重新考虑问题并使用@Kevin回答中的GUI,则可以使用module同时启动两个新控制台,并在打开的窗口中显示

  • 问题内容: 因此,当我尝试从命令提示符打开不在包中的Java类时,一切正常,但是当我尝试打开在包中的类时,它给了我NoClassDefFoundError。当我尝试打开类(java somepackage / someclass)时列出软件包时,它说它无法加载或找到主类。 有什么帮助吗? 问题答案: 我可以推断的是,您有两个类: Test.java: 因此您可以使用以下命令进行编译和运行: 另一类

  • 我想通过在selenium webdriver中按键盘键Ctrl打开chrome浏览器控制台。我可以使用Robot类来做这个动作,但我希望没有Robot类。我使用了Actions类和Keys类,使用的是sendKeys。但我无法打开浏览器控制台。 是chrome浏览器版本问题还是操作系统问题?为什么浏览器控制台没有使用Action类和Keys类打开?

  • 所以我有一个Laravel控制器: 目前,我正在使用artisan(在引擎盖下运行PHP的内置开发Web服务器)运行应用程序: 我想将控制台消息记录到artisan进程的管道中。