JFileChooserの代わりにFileDialogを使用して、OSXでより自然な動作を実現しようとしています。特に重要なのは、JFileChooserを使用して/Volumesの下に隠されている共有フォルダーへの明確なリンクがある[お気に入り]列です。
私はJava7を使用しています。そのため、Quaqua JFileChooserは1年間更新されておらず、OraclesJava7と互換性があるかどうかわからないため使用していません。
しかし、問題が発生しました。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でもコードを試しましたが、ネイティブダイアログであることが意図されていても、Windopws XPダイアログのように見えます。どうしてですか?)