Java - FileDialog Вопросы / Помощь - PullRequest
1 голос
/ 04 декабря 2011

Я уверен, что это очень неопрятные вопросы ... Но мне никогда раньше не приходилось иметь дело с FileDialog, и я не могу заставить свой код работать.

Это мой слушатель для моего JButton, который, как я знаю, входит в него, потому что всплывает FileDialog:

public static class FileListener implements ActionListener{
    public void actionPerformed(ActionEvent e) {
        FileDialog fd = new FileDialog(new Frame(), "Pick Folder");
        String dir = "C:/";
        fd.setDirectory(dir);
        fd.setAlwaysOnTop(true);
        fd.setMode(FileDialog.LOAD);
        fd.setVisible(true);
        String pickedFileDir = fd.getFile();
        File folder = new File(pickedFileDir);
        File[] listOfFiles = folder.listFiles();
        numOfFiles = listOfFiles.length;
    }
}

Проблема в том, что я хочу, чтобы он мог загружать ПАПКУ. Мне нужно получить каталог из него. И даже когда я нажимаю 1 файл и нажимаю «Открыть», numOfFiles не меняется. Я знаю это из-за этого кода:

JLabel number = new JLabel("Files found: " + numOfFiles);

Метка не меняется после открытия файла. Значение должно быть от «0» до «1».

Очень признателен, если вы поможете мне понять это (очевидно, «Лучший ответ» там для вас :))

1 Ответ

0 голосов
/ 04 декабря 2011

Вместо этого вы должны использовать JFileChooser.Вот ваш пример:

JFileChooser jfc = new JFileChooser();
jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
jfc.setCurrentDirectory(new File("C:/"));
if (jfc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
    File selectedFile = jfc.getSelectedFile();
    File[] listOfFiles = selectedFile.listFiles();
}
...