Как использовать JFileChooser.showOpenDialog для открытия определенного файла?

Прямо сейчас я могу открыть любой файл, который захочу, однако по умолчанию открывается файл «Мои документы». Как установить путь по умолчанию к файлу, сохраненному в моем проекте Java?

Прямо сейчас это то, что у меня есть:

              try{
                  int option = chooser.showOpenDialog(MyPanel.this);//Chooser is my JFileChooser
                    if(option == JFileChooser.APPROVE_OPTION) {
                       //do stuff
                    }
              }catch(Exception ex){} 

Что мне нужно передать в showOptionDialog(), чтобы открыть папку, если она находится в моем проекте Java?


person mr nooby noob    schedule 22.09.2015    source источник
comment
возможный дубликат JFileChooser изменить каталог по умолчанию в Windows   -  person Madhawa Priyashantha    schedule 22.09.2015


Ответы (2)


Вы можете использовать как

JFileChooser chooser = new JFileChooser("desired_current_directory");

or

chooser.setCurrentDirectory(new File("desired_current_directory"));

Если вы хотите открыть папку My Pics в каталоге вашего проекта, используйте

JFileChooser chooser = new JFileChooser("./My Pics");
person ashiquzzaman33    schedule 22.09.2015
comment
круто что работает! Благодарность! Есть ли другой способ прочитать этот файл без указания полного пути? Причина, по которой я спрашиваю об этом, заключается в том, что если я отдам этот проект кому-то и запущу его на своем компьютере, путь для них будет другим. Как я могу заставить его читать из папки, скажем, с именем My Pics, если она сохранена в моем java-проекте? - person mr nooby noob; 22.09.2015

Вы можете либо добавить каталог в конструктор JFileChooser вот так:

JFileChooser fileChooser = new JFileChooser("directory");

или вы можете установить текущий каталог, используя setCurrentDirectory(File dir):

fileChooser.setCurrentDirectory(new File("directory"));

Вероятно, проще просто установить его с помощью конструктора, но если вам нужно изменить его после создания JFileChooser, используйте setCurrentDirectory(File dir).

person Ladas125    schedule 22.09.2015