How can I make a java FileDialog accept directories as its FileType in OS X?

前端 未结 3 1154
北恋
北恋 2020-12-07 01:39

I am trying to switch from using a JFileChooser to a FileDialog when my app is being run on a mac so that it will use the OS X file chooser. So far I have the following cod

3条回答
  •  死守一世寂寞
    2020-12-07 01:58

    Assuming you're determined to use the FileDialog instead of the portable JFileChooser, you need to set the system property so that FileDialogs created are for directories.

    The property in question is apple.awt.fileDialogForDirectories.

    So simply do the following:

    System.setProperty("apple.awt.fileDialogForDirectories", "true");
    FileDialog fd = new FileDialog(this); 
    fd.setDirectory(_projectsBaseDir.getPath()); 
    fd.setLocation(50,50);
    fd.setVisible(true); 
    File selectedFile = new File(fd.getFile());
    System.setProperty("apple.awt.fileDialogForDirectories", "false");
    

    It should be noted that this isn't portable, however, since you're looking to replace the portable JFileDialog, I assume that's not an issue.

提交回复
热议问题