Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/67: Рейтинг темы: голосов - 67, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 08.08.2007
Сообщений: 184

Как в Java при закрытии JFrame завершить приложение полностью?

18.08.2007, 17:47. Показов 13437. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Hi, All!

Если нажать на крестик у JFrame, он закроется, а консольное приложение не закрывается пока не нажмешь <Ctrl+C>.
Как при закрытии JFrame завершить приложение полностью ?
Также буду очень признателен, если укажете на неправильную(с точки зрения профессионала) организацию классов (если она имеет место).

Текст приложения:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import javax.swing.*;
 
public class StartJFrame {
  private static MyJFrame f;
  public static void main(String sss[]) {
    f=new MyJFrame('Окошко MyJFrame',600,400);
  }
}
 
class MyJFrame {
  private static WindowListener WL;
  private static JFrame f=new JFrame();
 
  // Constructor of class MyJFrame
  MyJFrame(String title,int sx,int sy) {
    f.setTitle(title);
    f.setSize(sx,sy);
    f.setLocation((800-sx)/2,(600-sy)/2);
    f.setResizable(false);
    f.addWindowListener(WL);
    f.show();
  }
 
}
С уважением, Akula.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.08.2007, 17:47
Ответы с готовыми решениями:

Как завершить все потоки при закрытии формы?
Подскажите как завершить все потоки при закрытии формы?

Как завершить потоки запущенные в форме при закрытии?
Как завершить потоки запущенные в форме при закрытии? Использую async/await

Excel.Application, полностью завершить приложение
Я делаю так: procedure TfrmMain.btnOpenClick(Sender: TObject); var Xls: Variant; begin if OpRes.Execute then begin ...

4
mishgun
18.08.2007, 19:20
Если при нажатии на кнопку выход то необходимо определить ActionListener в котором при событии ActionEvent определить метод System.exit(0);
это будет примерно выглядеть так
Java
1
2
3
4
5
6
7
public class ButtonHandler implements ActionListener{
 public void actionPerformed(ActionEvent ae){
  String s = ae.getActionCommand();
   if(s.equals('Exit'))
   System.exit(0);
 }
}
Это внутренний класс и он должен быть внутри ващего основного класса MyFrame.
так же необходимо зарегистрировать кнопку с ActionListener
Java
1
2
Button b = new Button('Exit');
b.addActionListener(new ButtonHandler());
теперь по поводу Вашего кода.
Зачем вы объявляете все переменные static?
можно просто при нажатии на кнопку в классе StartJFrame запустить class MyFrame
Java
1
2
3
4
5
6
7
8
MyFrame mf;
public class ButtonHandler implements ActionListener{
 public void actionPerformed(ActionEvent ae){
  String s = ae.getActionCommand();
   if(s.equals('Start new frame'))
    mf = new MyFrame('New Window',300,300);
 }
}
mishgun
18.08.2007, 19:35
Судя по твоему коду у тебя получилось как в поговорке 'масло масленное'
Зачем создавать класс чтобы запустить из коммандной строки используя его другой класс.С тем же успехом можно запустить класс MyJFrame из командной строки не прибегая к помощи какого-то другого класса .Если ты хочешь поэкспирементировать с вызовом из одного класса другого то сделай класс StartJframe тоже Frame поставь туда кнопку и вызывай как я написал выше.
и работай с констракторами а не с maun.
То есть
Java
1
2
3
4
5
6
7
8
9
10
11
public class SFrame extends Frame{
 
Button b;
 
public SFrame(){}
 
public static void main(String args[]){
 
SFrame s = new SFrame();
}
}
так должен выглядеть нормальный класс
AiK
19.08.2007, 01:04
to mishgun: опять воевать будем?

Судя по сообщению, akula
хочет что-то вроде этого:
Java
1
2
3
4
5
addWindowListener(new WindowAdapter() {
 public void windowClosing(WindowEvent e) {
                System.exit(0);
 }
});
mishgun
19.08.2007, 03:47
Точно блин я не прочитал внимательно.Решил что ему надо закрыть не нажимая на крестик
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.08.2007, 03:47
Помогаю со студенческими работами здесь

Закрыть коннект с MySQL при закрытии окна Swing JFrame
Добрый день, уважаемые коллеги :senor: Подскажите, пожалуйста, как можно закрыть соединение с БД MySQL (подключен стандартно через...

Завершить работу потока при закрытии формы
procedure TForm1.BStartClick(Sender: TObject); begin ProgressBar1.Max := SLRepairFiles.Count; DownLoader_Thread :=...

Завершить все потоки какие есть при закрытии программы
Пишу программку, работает с интернетом. различных потоков порядка 10. при закрытии программы, я завершаю все потоки, но один постоянно...

Как завершить программу ПОЛНОСТЬЮ?
Как можно из процедуры закрыть программу ПОЛНОСТЬЮ? С exit; не работает, т.к. exit; завершает только процедуру.

Как сделать, чтобы приложение при закрытии выводило ExitCode (куда-либо)?
Как сделать, чтобы приложение при закрытии выводило ExitCode (не в консоль Visual Studio, а куда-нибудь ещё)? Если такое невозможно, то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru