Как я могу остановить свою заявку? - PullRequest
0 голосов
/ 08 апреля 2010

У меня есть основной поток, из которого я запускаю окно, используя invokeLater. Я запускаю свое приложение из командной строки. Итак, когда приложение запущено, я вижу окно, и моя командная строка «блокируется» приложением.

Я могу остановить приложение, либо закрыв окно (в результате командная строка разблокирована), либо напечатав Ctrl-C в командной строке (в результате окно исчезнет).

Я хотел, чтобы можно было остановить приложение, нажав кнопку в окне приложения. Я использовал setVisible(false) для этого. Но таким образом я могу достичь цели лишь частично. Мое окно действительно исчезает, но командная строка все еще заблокирована. Итак, программное обеспечение все еще работает.

Ну, я предполагаю, что это потому, что некоторые другие потоки все еще работают. Но как я могу легко закрыть все эти темы (как я делаю, закрыв окно приложения вручную).

Ответы [ 4 ]

4 голосов
/ 08 апреля 2010
System.exit(0);
1 голос
/ 08 апреля 2010

Если вы показываете JFrame, вы можете сказать ему выйти из приложения, когда фрейм закрыт - по умолчанию просто скрыть фрейм:

 myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Это закроет приложение, если пользователь закроет окно (верхняя правая кнопка [x] часто), кроме того, у вас может быть кнопка Выход, чей обработчик событий закрывает окно, используя myFrame.dispose();

0 голосов
/ 08 апреля 2010

Попробуйте Window.dispose ()

0 голосов
/ 08 апреля 2010

Вы должны закончить все темы, чтобы остановить ваше приложение. Простое скрытие графического интерфейса не завершит AWT-Thread. Посмотрите на API классов GUI, которые вы используете, например dispose-method.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...