2014-11-21 2 views
0

После открытия JFileChooser с помощью кнопки в окне открывается File Chooser, затем открывается окно оригинала. Я хотел бы оставить это оригинальное окно открытым, когда пользователь использует File Chooser и после.Java Swing: как открыть родительское окно после закрытия JFileChooser

Мой код:

// Code from the class that makes the original window that has the launch button 
FilePicker filePicker = new FilePicker(); 
public void actionPerformed(ActionEvent e) { 
      txtImportLog.append("\nUser selecting file"); 
      if (filePicker.canPick()) { 
      filePicker.init(); 
      filePicker.getImportFile(); 
      } else { 
       txtImportLog.append("\nCan't pick more files."); 
      } 
     } 
    }); 

// Code from the class that creates a FilePicker 
//(yes, I know the getImportFile() and init() methods are setup badly, its just for 
// testing right now 
// Initialize - only should be called once 
public void init() { 
    filePicker = new JFileChooser(); 
    interval1 = 0; 
    interval2 = 0; 
    testFile = new File(""); // for testing. clearly. 
} 

// Get a file to import 
public static File getImportFile() { 
    filePicker.setFileSelectionMode(JFileChooser.FILES_ONLY); 
    filePicker.showOpenDialog(filePicker); 
    return filePicker.getSelectedFile(); 

} 
+4

Рассмотрите возможность предоставления [runnable example] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это приведет к меньшему путанице и лучшим ответам. – MadProgrammer

ответ

0

К сожалению, я просто имел код (автоматически генерируется Eclipse, плагин WindowBuilder), который искал, когда родительское окно потерял фокус, было бы закрыть приложение. Главным окном был родитель файла. Поэтому, когда пользователь нажал кнопку «Open file chooser», фокус главного окна будет потерян, закрыв приложение.

+1

У вас нет места, где-то где-то лежит код? – luckydonald

0

Позволяет видеть setDefaultCloseOperation. http://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html

Устанавливает операцию, которая будет выполняться по умолчанию, когда пользователь инициирует «закрытие» этого кадра. Вы должны указать один из следующих вариантов: DO_NOTHING_ON_CLOSE (определено в WindowConstants): ничего не делать; требуют, чтобы программа обрабатывала операцию в методе windowClosing зарегистрированного объекта WindowListener. HIDE_ON_CLOSE (определяется в WindowConstants): автоматически скрыть кадр после вызова любых зарегистрированных объектов WindowListener. DISPOSE_ON_CLOSE (определено в WindowConstants): автоматически скрывать и удалять кадр после вызова любых зарегистрированных объектов WindowListener. EXIT_ON_CLOSE (определяется в JFrame): выход из приложения осуществляется с помощью метода выхода из системы. Используйте это только в приложениях. Значение по умолчанию равно HIDE_ON_CLOSE. Изменения в значении этого свойства вызывают увольнение события изменения свойства, с именем свойства «defaultCloseOperation».

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