6

JFileChooserを使用して、ロードおよび保存用のファイルを取得しようとしています。表示されるダイアログはopenFileDialog()正常に機能しますが、このメソッドを使用するsaveFileDialog()と、ダイアログウィンドウのすべてのファイル名がグレー表示されます。これは、FileFilter(私の例には、私が見ているものをよりよく示すためのものが含まれています)の有無にかかわらず発生します。

説明するための最小限のプログラムは次のとおりです。

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.filechooser.FileNameExtensionFilter;

public class Temp extends JFrame {
    public static void main(String[] args){
    JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JFileChooser chooser = new JFileChooser();
        FileNameExtensionFilter filter = new FileNameExtensionFilter("Text File", "txt");
        chooser.setFileFilter(filter);

        frame.setVisible(true);
        chooser.showOpenDialog(null);
        chooser.showSaveDialog(null);
    }
}

[開く]ダイアログに表示される内容は次のとおりです。 [ダイアログを開く]

[保存]ダイアログに表示される内容は次のとおりです。[保存] ダイアログ

グレー表示されているにもかかわらず、保存ダイアログのすべてのファイルを選択できます。

重要な場合は、Mac /MountainLionとJava7を使用しています。

これは予想される動作ですか?これを変更する方法はありますか?

(編集:以下のMadProgrammer + trashgodによるコメントによると、これは他の(ネイティブ)Macアプリのルック+フィールと一致しているようです)

4

3 に答える 3

2

.txt保存ダイアログで「通常の」色で表示されるファイルを探しています。

これは、Mac OS XFileChooserUIなどの特定のルックアンドフィールに固有のデリゲートによって制御されます。別のL&Fを使用したり、(手間をかけて)独自に作成したり、カスタムのファイルブラウザGUIを開発したりできます。AquaFileChooserUIFileChooserUI

于 2013-02-22T03:44:44.383 に答える
2

私がやったことは、使用することでした:

JFileChooser chooser = new JFileChooser(...);
chooser.showDialog(myFrame, "Save");

私の保存ダイアログは保存ダイアログのように見えFileFilter、テストに失敗したファイルのみがグレー表示されます。

于 2015-08-19T20:37:41.350 に答える
0

うーん...私は、あなたのやり方でダイアログを表示するのは最善の方法ではないと思います

chooser.showOpenDialog(null);
        chooser.showSaveDialog(null);

それが対立を引き起こしているのではないかと思います。JFrameを使ってみませんか?問題がsaveDialogであるかどうかを知るために、このコードを試してみてください。Myabeは、プログラミング要件に合わせて調整できます。

JFrame parentFrame = new JFrame();

JFileChooser fileChooser = new JFileChooser();
fileChooser.setDialogTitle("Specify a file to save");    

int userSelection = fileChooser.showSaveDialog(parentFrame);

if (userSelection == JFileChooser.APPROVE_OPTION) {
    File fileToSave = fileChooser.getSelectedFile();
    System.out.println("Save as file: " + fileToSave.getAbsolutePath());
}

実際のところ、setLookAndFeelを試してみることができます。この問題は、MacbookProで発生したことを覚えています。

于 2013-02-22T03:17:17.420 に答える