Получите, сколько файлов пользователь выбирает, используя JFileChooser - PullRequest
1 голос
/ 28 июля 2011

В моей программе я использую JFileChooser.Пользователь может выбрать несколько файлов, используя JFileChooser.Если пользователь выбирает только один файл, возвращается только объект Файл , который можно получить с помощью fileChooser.getSelectedFile().Если пользователь выбирает более одного файла, возвращается File [] , и его можно получить с помощью fileChooser.getSelectedFiles().

В настоящее время я использую блок try / catch для захвата любого типа, возвращаемого с помощью указанных методов.Мне кажется, что это плохой способ сделать это.

Есть ли способ проверить, какой тип объекта будет возвращен (например, должен ли я получить массив)?Я не могу найти метод в API для этого.

Ответы [ 2 ]

4 голосов
/ 28 июля 2011

Если вы разрешаете пользователю выбирать более одного файла, вы должны вызвать get.SelectedFiles() и получить массив в качестве ответа.

Поскольку это массив, вы можете увидеть количество компонентов, чтобы увидеть, какБыло выбрано много файлов (один, два ...), и они взаимодействуют через него, чтобы делать все, что вы хотите.

И если вы обнаружите, что он получил только один файл, действуйте так, как вы хотите.

1 голос
/ 28 июля 2011

, если вы хотите убедиться, что могут быть выбраны только определенные типы файлов, вам следует установить фильтр файлов

    JFileChooser fc = new JFileChooser();
    fc.setFileFilter(new FileFilter()
    {
      public boolean accept(File file)
      {
        return file.isDirectory() ||
               file.getName().endsWith(".abc");
      }
      public String getDescription()
      {
        return "Your files *.abc files";
      }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...