我有一个简单的JavaFX应用程序,我只是通过调用FileChooser
打开showOpenDialog()
。
我希望在文件选择器打开时禁用我的主窗口,并在可能的情况下将其保留在主窗口的顶部。
感谢您给予的任何帮助。
答案 0 :(得分:2)
来自showOpenDialog
的文件(强调我的):
显示新文件打开对话框。该方法不会返回,直到 显示的打开对话框被驳回。返回值指定 用户选择的文件,如果没有选择则为null。 如果 设置文件对话框的所有者窗口,输入到所有窗口中 在显示文件对话框时,对话框的所有者链被阻止。
因此,由于所有者链,在这种情况下,primaryStage
和secondStage
都被阻止了:
primaryStage.setScene(new Scene(new VBox(), 300, 300));
primaryStage.show();
Stage secondStage = new Stage();
secondStage.setScene(new Scene(new VBox(), 50, 50));
secondStage.initOwner(primaryStage);
secondStage.show();
FileChooser fc = new FileChooser();
fc.showOpenDialog(secondStage);
如果将最后一行修改为
fc.showOpenDialog(primaryStage);
primaryStage
已被屏蔽,但secondStage
可用。
最后,如果你不执行这一行:
secondStage.initOwner(primaryStage);
并将最后一行称为
fc.showOpenDialog(secondStage);
primaryStage
未被阻止,但secondStage
被屏蔽。