Использование FileDialog для выбора файла определенного расширения

StackOverflow https://stackoverflow.com/questions/1246857

  •  12-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь использовать средство выбора файлов FileDialog, потому что мне действительно нужно, чтобы в java-приложении было встроенное средство выбора файлов Apple (я знаю, мы все ненавидим отсутствие переносимости, но это то, что мне нужно).Я пытаюсь сделать так, чтобы мое средство выбора файлов позволяло пользователю выбирать файлы, которые заканчиваются на .ws .Вот что я попробовал:

            FileDialog fd = new         

           FileDialog(_sharedInstance,rsc.str("480"),FileDialog.LOAD);
           // fd.setFile("*.ws");
            class WSFilter implements FilenameFilter {
                public boolean accept(File dir, String name) {
                    return (name.endsWith(".ws"));
                }
            };
            FilenameFilter wsFilter = new WSFilter();

            fd.setFilenameFilter(wsFilter);
            fd.setDirectory(_projectsBaseDir.getPath());
            fd.setLocation(50,50);

           // fd.setFile("*");
            fd.setVisible(true);

По какой-то причине мое средство выбора файлов не позволяет мне выбирать какие-либо файлы.Есть какие-нибудь идеи?

Это было полезно?

Решение

Ответ был таким: мне нужен этот звонок:System.setProperty("apple.awt.fileDialogForDirectories", "false");

Другие советы

Почему бы не использовать JFileChooser?

JFileChooser fileChooser = new JFileChooser(new File(filename));
fileChooser.addChoosableFileFilter(new MyFilter());

class MyFilter extends javax.swing.filechooser.FileFilter {
    public boolean accept(File file) {
        String filename = file.getName();
        return filename.endsWith(".java");
    }
    public String getDescription() {
        return "*.java";
    }
}

Разве об этом раньше не спрашивали?

В любом случае, вы можете попытаться изменить L & F и продолжать использовать JFileChooser.

Я слышал, что этот хорош:

Внешний вид и ощущения Quaqua

alt text

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top