2015-07-04 5 views
-2

У меня есть стандартный класс Качели GUI:Как закрыть окно (Java Swing) после запуска?

public class ElevatorGUI extends JFrame implements Observer { 
private JButton button2; 
private JTextArea textArea2; 
private JSeparator separator2; 
private JLabel label4; 
private JLabel label5; 
private JLabel label6; 

с INIT

Container contentPane = getContentPane(); 
GroupLayout contentPaneLayout = new GroupLayout(contentPane); 
    contentPane.setLayout(contentPaneLayout); 
    contentPaneLayout.setHorizontalGroup(
     contentPaneLayout.createParallelGroup() 
      .addGroup(contentPaneLayout.createSequentialGroup() 

... и т.д. Таким образом, мы можем закрыть этот графический интерфейс стандартным способом:

setDefaultCloseOperation(EXIT_ON_CLOSE); 

но как сделать то же самое из метода? Например:

public void update() { 
Thread.currentThread().interrupt(); 
} 

ответ

3

Взято из How to programmatically close a JFrame:

frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));

Когда класс расширяет JFrame, сделать это вместо:

this.dispatchEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));

Когда это выполняется, JFrame будет закрыт точно так же, как если бы пользователь нажал кнопку «x».

+0

, но у меня нет рамки в моем классе/я попробовал: this.dispatchEvent (новый WindowEvent (frame, WindowEvent.WINDOW_CLOSING)); Но ничего не происходит ( – Spacemaster

+0

@Spacemaster см. В edit, когда класс расширяет 'JFrame' – MCMastery

+0

(1+)', но у меня нет фрейма в моем классе' - вы уверены, что ваш класс расширяет JFrame. Понимайте концепцию ответа , и при необходимости измените. – camickr

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