java - 如何从静态方法打开一个新窗口 - JavaFX
问题描述
我正在尝试通过创建自定义弹出窗口JavaFX
,并且从static
方法启动它时遇到了一些麻烦。
如何从static
方法启动新窗口?
关于我的程序的一般信息 - 用户应键入数据并选择/取消选择checkbox
. 按下“提交”会button
运行一个static
做一些事情的方法,并根据用户的checkbox
选择 - 运行另一个做其他事情的方法。
如果checkbox
取消选择,我想打开另一个窗口(自定义弹出窗口)。
但是,我不能这样做,因为我所有的方法都是static
(无法改变)。该方法uploadCustomIndexWindow
被定义为静态的,因此,当我尝试启动我的自定义弹出窗口时,我得到了错误
无法从 Object 类型对非静态方法 getClass() 进行静态引用。
.
private static Index getStartEndIndex(String childFormat, boolean isFromExportTDP) {
if(IndexMap.getIndexMap().get(childFormat) == null) {
Index index;
if (isFromExportTDP) {
if(childFormat.equalsIgnoreCase("pdf")){
index = new Index(childFormat, 2, 12);
}
else {
index = new Index(childFormat, 2, 5);
}
}
else{
// Custom pop-up
uploadCustomIndexWindow();
index = new Index(childFormat, startIndex, endIndex);
}
IndexMap.getIndexMap().put(childFormat, index);
}
return IndexMap.getIndexMap().get(childFormat);
}
public static void uploadCustomIndexWindow() throws IOException{
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("CustomIndexScreen.fxml"));
Parent root1 = (Parent) fxmlLoader.load();
Stage stage = new Stage();
stage.setScene(new Scene(root1));
stage.setTitle("Custom Index Screen");
stage.show();
}
解决方案
请使用“YourClassName.class”而不是“getClass()”!
推荐阅读
- python - 仅当通过 python firebase SDK 添加文档时,才在 angularfire 上更新空文档
- javascript - Javascript按钮没有响应
- c# - OData 4.0 WebAPI Asp.Net Core 自定义导航链接
- python - 有没有办法修复 while 循环不使用 time.sleep 更新 tkinter 标签?
- visual-studio-code - 如何在 Visual Studio Code 中导入自定义 python 模块以完成代码?
- java - 获取选定recyclerview的文本(使用FireBase)
- javascript - “module.exports”不适用于 gRPC(npm-project)
- reactjs - 如何使用 redux-form 更新 redux 状态
- c++ - 函数重载:空参数列表 vs 参数包
- vba - 当我使用 Inno 时,我的数据库变为只读