在Swing中使用JavaFX FileChooser

时间:2018-08-27 12:21:26

标签: swing javafx modal-dialog filechooser

我正在使用Swing应用程序,但是该应用程序的某些部分开始使用JavaFX。现在,我想使用JavaFX FileChooser,因为它显示了操作系统特定的对话框(更好的可用性)。

问题在于情态。对于其他对话框,存在几种方法来解决Swing中JavaFX的模式问题(例如,使用另一个JFXPanel将对话框内容包装在Swing框架中,将阶段的alwaysOnTop设置为true,.. )。 FileChooser似乎无法同时实现这两种功能。

当前,我正在使用这种方法,这几乎是一个可行的解决方案(警告:这只是草稿,应添加CountDownLatch和用法try {} finally {}

JDialog dialog; 
SwingUtilities.invokeLater({ => 
  dialog = new JDialog(thisView.getCanvas().getRootPane() as Frame, "", true); 
  dialog.setUndecorated(true); 
  dialog.setVisible(true); 
}); 
FileChooser fileChooser = new FileChooser(); 
fileChooser.setTitle("Load Composition From File"); 
fileChooser.showOpenDialog(null); 
dialog.setVisible(false);

想法是一个不可见的模态Swing对话框“阻止” Swing应用程序,直到用户关闭FileChooser。效果很好。

唯一的问题是FileChooser可以移到后台。设置alwaysOnTop = true对我来说是可以的,但是找不到一种方法。有什么建议吗?

0 个答案:

没有答案