2015-09-15 3 views
2

В этой программе у меня возникают две проблемы, когда я закрываю JDialog. Диалог не закрывается должным образом, как EXIT_ON_CLOSE. И как дать заголовок этому диалогу.
КодJava: JDialog Заключительный выпуск

public class Dialog extends JDialog{ 

    public Dialog(){ 

     setSize(300,200); 
     setLocationRelativeTo(null); 
     setVisible(true); 

    } 

} 

Главный метод

общественного класса Main {

public static void main(String[] args) { 

    Dialog frame = new Dialog(); 

    frame.addWindowListener(new WindowAdapter() { 
     public void windowClosing(WindowEvent e) { 

      int result = JOptionPane.showConfirmDialog(frame, "Are you sure you want to exit the application? ", 
        "EXIT Application", JOptionPane.YES_NO_OPTION); 

      if (result == JOptionPane.YES_OPTION) 
       System.exit(0); 

      else if (result == JOptionPane.NO_OPTION) { 

       frame.setDefaultCloseOperation(frame.DO_NOTHING_ON_CLOSE); 
      } 

     } 
    }); 

} 

} 
+2

1) 'setDefaultCloseOperation (JDialog.DISPOSE_ON_CLOSE);' 2) '\t SETTITLE ("Диалог");' –

+0

@LuxxMiner но DISPOSE_ON_CLOSE закрыть диалоговое окно медленно не нравится EXIT_ON_CLOSE и что это значит DISPOSE_ON_CLOSE –

+1

'EXIT_ON_CLOSE' отключает всю вашу программу, 'DISPOSE_ON_CLOSE' просто удаляет диалог в этом случае. Это не похоже на вызов 'setVisible (false)', потому что вы не можете использовать тот же диалог больше после его удаления. –

ответ

2

не нравится EXIT_ON_CLOSE

EXIT_ON_CLOSE не поддерживается для JDialog.

но DISPOSE_ON_CLOSE закрыть диалоговое окно медленно

немедленно закрывает диалог и фокус будет вернуться к родительскому JFrame.

Есть ли способ, что я могу закрыть всю программу в JDialog

Вы должны закрыть рамку.

Возможно, вы пытаетесь закрыть приложение из всплывающего диалогового окна? Если да, то проверьте Closing an Application.

Он покажет вам, как:

  1. Используйте WindowListener для обработки windowClosing и отображать всплывающее диалоговое окно, или
  2. использовать предлагаемый класс, чтобы сделать кодирование проще.
+0

, но он показывает закрытие окна для JFrame, но я хочу манипулировать с помощью JDialog. –

+1

@JohnDoe. «Диалог» по-прежнему расширяет «окно», поэтому вы также можете добавить «WindowListener» в свое диалоговое окно. –

+0

@LuxxMiner и camickr благодарит вас за ответы –

Смежные вопросы