powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Закрытие окон в Swing
12 сообщений из 12, страница 1 из 1
Закрытие окон в Swing
    #36590255
Фотография Щиче
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть JFrame, который должен при закрытии сохранять свои размеры. Я использую для отслеживания закрытия класс windowAdapter. Окно можно закрыть щелчком на кнопке (setVisible(false);) и обычным виндовым способом. Метод windowClosing срабатывает только если я закрываю окно последним способом, а на setVisible он не срабатывает.
Метод windowClosed срабатывает лишь на dispose, а мне это неудобно.

Как отследить именно исчезновение окна с экрана вне зависимости как оно закрылось?
...
Рейтинг: 0 / 0
Закрытие окон в Swing
    #36590266
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
windowDeactivated ещё есть.
...
Рейтинг: 0 / 0
Закрытие окон в Swing
    #36590282
Фотография Щиче
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczwindowDeactivated ещё есть.
Неаккуратно выходит. Срабатывает, но срабатывает и когда я переключаюсь на другое окно. А это уже лишнее действие. Нет другого способа?
...
Рейтинг: 0 / 0
Закрытие окон в Swing
    #36590297
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
немного не понятно. setVisible(false) лишь скрывает окно, чтобы его можно было потом показать, не создавая заново. Не уверен что называется "обычным виндовым способом", то по закрытию окна оно вроде как и диспозится. Поэтому вопрос в том почему бы не вызывать метод dispose()?
...
Рейтинг: 0 / 0
Закрытие окон в Swing
    #36590300
Фотография Щиче
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь понял, спасибо. В Дельфе закрытие окна - исчезновение его с экрана.
...
Рейтинг: 0 / 0
Закрытие окон в Swing
    #36590313
Фотография Щиче
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще маленький вопрос. Если я окну сделал dispose - то класс JFrame у меня уцелеет? Те поля, которые мною добавлены надо помнить после его исчезновения с экрана. Само окно мне больше ненужно, а эти поля надо обработать.
...
Рейтинг: 0 / 0
Закрытие окон в Swing
    #36590324
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Класс точно уцелеет. Он в rt.jar зашит намертво. Ну а на счет экземпляра, то всё то же самое как и для других объектов. Пока есть ссылки, всё доступно. dispose() кроме всего прочего и освобождает нативные ресурсы.
...
Рейтинг: 0 / 0
Закрытие окон в Swing
    #36590335
Фотография Щиче
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за помощь, все получилось как нужно.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Закрытие окон в Swing
    #38357547
Edgar_Prima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, а при нажатии закрывающего крестика можно дернуть свою логику? Например закрыть диалог крестиком и чтобы сработал так же мой метод?
...
Рейтинг: 0 / 0
Закрытие окон в Swing
    #38357610
Фотография Паша01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
public class InfoFrame extends WindowAdapter{
    public void windowClosing(WindowEvent e){
        //тут быть твоя кода, а потом оно закрываться или хз чо О_О
        System.exit(0);
   }
}
...
Рейтинг: 0 / 0
Закрытие окон в Swing
    #38357613
Фотография Паша01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри, немного не точно, а то запутаешься
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public class InfoFrameListener extends WindowAdapter{
    public void windowClosing(WindowEvent e){
        //тут быть твоя кода, а потом оно закрываться или хз чо О_О
        System.exit(0);
   }
}

public class InfoFrame extends JFrame{
    public InfoFrame(){
        WindowListener listener = new InfoFrameListener();
        frame.addWindowListener(listener);
    } 
}
...
Рейтинг: 0 / 0
Закрытие окон в Swing
    #38360291
Edgar_Prima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Паша01, за пример спасибо, удалось прицепить код к главному фрейму, а к диалогу не вышло...

WindowListener windowListener = new InfoFrameListener();
addFeaturesDialog.addWindowListener(windowListener);

Диалоги создаются в отдельном классе... Много в каких местах использовал эти строки, а листенер все не слушает диалог...

Вправьте мне голову или руки)))
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Закрытие окон в Swing
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]