2

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ダイアログのように見えます。どうしてですか?)

4

1 に答える 1

1

最初の質問については、私のコメントのリンクを確認してください

2番目については、機能を容易にするためにリンクしているライブラリに帰着することをお勧めします。OS が更新されたからといって、古いライブラリが削除されたわけではありません。古いバージョンのアプリケーションとの互換性を維持するために、これらのライブラリは通常、しばらくの間維持されます。

xFileDialogを見ることができます(この投稿Alternative to JFileChooser経由)

于 2012-08-23T21:15:17.430 に答える