0 / 0 / 0
Регистрация: 08.08.2007
Сообщений: 184

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

18.08.2007, 17:47. Показов 13445. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru