2016-02-15 2 views
1

Итак, я создал приложение GUI для Java, у меня есть основная форма, и я запускаю этот класс PathBrowser, щелкнув jbutton, JFileChooser запускается дважды, хотя я попытался добавить opendialog из своей основной формы, чтобы я мог иметь тот же логотип на окне.Java/Swing: Почему мой JFileChooser открывается дважды?

Вот мой код:

public class PathBrowser { 
public static String filepath = null; 
public static void main(String[] args) 
{ 

    JButton select = new JButton(); 
    JFileChooser browse = new JFileChooser(); 
    //add the icon of main form for JFileChooser 
    //OPENS TWICE?! Error 
    browse.showOpenDialog(MainForm.frame); 

    //if blank goes to user/documents. Unsure about other OSes 
    browse.setCurrentDirectory(new java.io.File("C:/")); 
    browse.setDialogTitle("Browse Folder"); 
    browse.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
    //when clicked open (approve option) 
    if (browse.showOpenDialog(select) == JFileChooser.APPROVE_OPTION){ 
     //folder has peen selected 
     MainForm.selfolder = true; 
     //add the path to the string filepath 
     filepath = (browse.getSelectedFile().getAbsolutePath()); 
     System.out.println("The path for the server is: "+browse.getSelectedFile().getAbsolutePath()); 
     //add the information to the textarea 
     MainForm.textArea.setText("The path for the server is: "+browse.getSelectedFile().getAbsolutePath()); 
    } 

} 

} 

Благодаря

ответ

6

Вы звоните browse.showOpenDialog дважды, поэтому вы получите его в два раза.

Просто удалите эту строку:

browse.showOpenDialog(MainForm.frame); 

и сохранить иконку фрейма, заменить

browse.showOpenDialog(select) 

с

browse.showOpenDialog(MainForm.frame) 
+0

удаления этой строки вызовет JFileChooser не иметь то же самое icon как MainForm –

+0

Правильно, я только что отредактировал ответ. – Berger

+1

Большое спасибо, это исправлено! Отличный день: D –

Смежные вопросы