1
我目前正試圖從Netbeans Platform API使用FileChooserBuilder。以下代碼是完整的netbeans模塊操作。運行時,它不會顯示在窗口/屏幕的中心,而是顯示在屏幕左下角的某處。是否有可能在屏幕中間顯示此對話框?FileChooserBuilder不顯示在屏幕中心
3210感謝您的想法。
我目前正試圖從Netbeans Platform API使用FileChooserBuilder。以下代碼是完整的netbeans模塊操作。運行時,它不會顯示在窗口/屏幕的中心,而是顯示在屏幕左下角的某處。是否有可能在屏幕中間顯示此對話框?FileChooserBuilder不顯示在屏幕中心
3210感謝您的想法。
找到了解決方案:
你必須獲得JFileChooser的實例,並設置右父組件在它的showOpenDialog方法(它然後定位成相對於應用程序的主窗口)。但是,隨着NetBeans嘗試在線程中安全地工作 - 它只允許一個線程訪問組件,因此必須使用EventQueue.invokeLater。
public final class LoadProjectAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
// output window
InputOutput io = IOProvider.getDefault().getIO("File search", true);
io.select();
// start in user home directory
File initialDirectory = new File(
System.getProperty("user.home")
+ File.separator + "lib");
FileChooserBuilder fileChooserBuilder = new FileChooserBuilder(
"LoadProjectAction");
fileChooserBuilder.setTitle("Load project");
fileChooserBuilder.setDefaultWorkingDirectory(initialDirectory);
fileChooserBuilder.setApproveText("Load");
fileChooserBuilder.setDirectoriesOnly(true);
JFileChooser jfc = fileChooserBuilder.createFileChooser();
int value = jfc.showOpenDialog(WindowManager.getDefault().getMainWindow());
if (value != JFileChooser.APPROVE_OPTION) {
return; // nothing to do
}
// process selection
}
});
}
}