powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Закрытие диалога
2 сообщений из 2, страница 1 из 1
Закрытие диалога
    #34422344
aleksandy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попытка закрытия диалога обрабатывается так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
addWindowListener( new  WindowAdapter() {
         public   void  windowClosing(WindowEvent we) {
           if  (refresh.isEnabled()) {
             int  result = JOptionPane.showConfirmDialog( null ,
                "Данные были изменены. Вы хотите принять изменения?",
                "Подтверждение", JOptionPane.YES_NO_CANCEL_OPTION,
                JOptionPane.WARNING_MESSAGE);
             switch  (result) {
             case  JOptionPane.YES_OPTION:
              refresh.doClick();
              closeDialog();
               break ;
             case  JOptionPane.NO_OPTION :
              closeDialog();
               break ;
             case  JOptionPane.CANCEL_OPTION :                
            }
          }
        }   
    });
У диалога есть кнопка "Закрыть" (не "крестик" в верхнем углу, а именно кнопка JButton) ее нажатие обрабатываю так:
Код: plaintext
1.
2.
3.
4.
close.addActionListener( new  ActionListener() {
       public   void  actionPerformed(ActionEvent ae) {
        closeDialog();
      }
    });
Если closeDialog определить так, тогда при нажатии на close не происходит событие windowClosing. Как быть? Есть ли у диалога какой-нибудь метод, типа close()?
Код: plaintext
1.
2.
 public   void  closeDialog() {
    dispose();
}
...
Рейтинг: 0 / 0
Закрытие диалога
    #34422469
Дуремар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выстави у диалога
your_dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
Дальше в добавляешь WindowListener и в методе windowClosing(WindowEvent we) просто вызываешь свой closeDialog(). Кнопочка тоже должна просто дергать closeDialog().
А в методе closeDialog() пишешь вси логику закрытия - т.е. спрашиваешь у пользователя закрыть ли диалог, если говорит да то говоришь своему диалогу dispose(), если нет - то ничего не делаешь.
Таким образом, все действия, которые необходимо выполнить при закрытии диалога ты помещаешь в свой метод closeDialog() - и все эти действия гарантированно будут выполняться как при нажатии на крестик, так и при нажатии на твою кнопку. Можешь еще менюшку присобачить - которая тоже будет дергать closeDialog().
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Закрытие диалога
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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