[英]Create a modal javafx.stage.FileChooser inside a swing application
我有一个Swing应用程序,其主窗口继承了JFrame
类。 该应用程序正在过渡到JavaFX,因此JavaFX组件上有很多东西,包括控制面板。 我需要相对于主要JFrame
以非模式方式从非UI线程显示本机文件选择器。 可以通过设置FileChooser
类的所有者来实现,但是需要javafx.stage.Window
作为所有者。 是否有一些技巧可以将JFrame
设置为javafx FileChooser
或Stage
所有者?
解决方案可能是禁用以某种方式选择JFrame
直到FileChooser
关闭。
这是一些伪代码,因为我不知道该怎么做:
setFocusableWindowState(false)
吗?) Thread.join()
或者您想管理线程),将焦点恢复到JFrame 其实就像:
JFrame frame = // get window
frame.setEnabled(false); // emulate window modality
File file = fileChooser.showOpenDialog(null);
if (file == null || !openFile(file)) { // return true if file was opened correctly
frame.setEnabled(true);
frame.requestFocus(); // window looses focus after enabling
}
因此, FileChooser
在这里的行为类似于模式窗口。 缺点是需要控制所有路径以启用窗口后退功能,因此它不会永远保持禁用状态。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.