2011-04-08 91 views
1

我目前正試圖從Netbeans Platform API使用FileChooserBuilder。以下代碼是完整的netbeans模塊操作。運行時,它不會顯示在窗口/屏幕的中心,而是顯示在屏幕左下角的某處。是否有可能在屏幕中間顯示此對話框?FileChooserBuilder不顯示在屏幕中心

​​3210

感謝您的想法。

回答

0

找到了解決方案:

你必須獲得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 
      } 
     }); 

    } 
}