我正在尝试使用 FileDialog 而不是 JFileChooser 在 OSX 上获得更自然的行为,特别重要的是收藏列,其中包含指向使用 JFileChooser 隐藏在 /Volumes 下的共享文件夹的清晰链接。
我正在使用 Java 7,因此我没有使用 Quaqua JFileChooser,因为它已经有一年没有更新了,而且我不确定它是否与 Oracles Java 7 兼容。
但是我遇到了一个问题,有没有办法让 FileDialog 只允许打开一个文件夹而不是一个文件,我设置了一个文件名过滤器,但它似乎没有效果,也没有
.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
就像 JFileChooser 一样。
public void actionPerformed(ActionEvent e)
{
FileDialog chooser = new FileDialog(SongKong.mainWindow.frame);
chooser.setFilenameFilter(new FolderFilter());
chooser.setMode(FileDialog.LOAD);
chooser.setVisible(true);
String folderSelected = chooser.getDirectory();
File folder = new File(folderSelected) ;
if(folder.exists() && folder.isDirectory())
{
//Do something with selected folder
}
}
class FolderFilter implements FilenameFilter
{
public boolean accept(File dir, String name)
{
return new File(dir,name).isDirectory();
}
}
(顺便说一句,也尝试了 WINdows 7 上的代码,但即使是本机对话框,它仍然看起来像 Windows XP 对话框,怎么会?)