JFileChooser.showSaveDialog:所有文件变灰(JFileChooser.sh

2019-07-20 08:47发布

我试图用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 /山狮和Java 7,如果它很重要。

这是预期的行为? 有没有办法来改变这种?

(编辑:每通过MadProgrammer +以下trashgod评论,这似乎是与其他(天然)Mac应用程序的外观+感觉一致)

Answer 1:

我在找.txt文件,同时在保存对话框将显示在“正常”的颜色。

这是由控制FileChooserUI针对特定的外观和感觉,如委托AquaFileChooserUI Mac OS X上,您可以使用不同的L&F,(辛苦)写自己的FileChooserUI ,或开发自定义的文件浏览器GUI



Answer 2:

我落得这样做是使用:

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

我保存对话框看起来像一个保存对话框,以及FileFilter灰色出来只有失败的测试文件。



Answer 3:

嗯......我想,这个节目的对话,你做的方式是不是最好的方法

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,我记得我有这个问题,我的MacBook Pro工作。



文章来源: JFileChooser.showSaveDialog: All files greyed out