установите JFileChooser для открытия текущего каталога - PullRequest
8 голосов
/ 16 октября 2011

Я создал JFileChooser для открытия файла, но когда я выбираю файл и открываю его, второй раз, когда я хочу выбрать файл, JFileChooser не находится в текущем каталоге.Как настроить JFileChooser для открытия текущего каталога?

JFileChooser fileChooser = new JFileChooser();
        fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );
         fileChooser.setDialogType(JFileChooser.SAVE_DIALOG);
         int result = fileChooser.showOpenDialog( this );
         if ( result == JFileChooser.APPROVE_OPTION ){
              File fileName = fileChooser.getSelectedFile();
              File path=fileChooser.getCurrentDirectory();
              if ( ( fileName == null ) || ( fileName.getName().equals( "" ) ) )
              {
                 JOptionPane.showMessageDialog( this, "Invalid File Name",
                    "Invalid File Name", JOptionPane.ERROR_MESSAGE );
              }
              else{
               currentPath=path.getPath()+"\\"+fileName.getName();}
             } 

Ответы [ 2 ]

12 голосов
/ 16 октября 2011

Либо передайте каталог в конструктор через параметр File (a File также может быть каталогом, FYI), либо используйте метод .setCurrentDirectory(File dir) перед тем, как сделать JFileChooser видимым.

Кроме того, чтобы JFileChooser оставался в той же папке, вам необходимо сохранить папку файла / каталога, выбранного в прошлый раз, и использовать значение THAT для управления тем, какая папка будет запущена в последующие времена с помощью .setCurrentDirectory(File dir)

3 голосов
/ 16 октября 2011

Сделать выбор атрибута уровня класса и создать его только один раз. Таким образом, он не только указывает, где он находился при закрытии, но также имеет тот же размер, местоположение, выбранный фильтр файлов и т. Д.

...