Este artigo mostrará como fechar uma janela em Java. Fechar uma janela é muito mais fácil usando o Swing
JFrame
mas também é possível usando AWT's
Quadro
Passos
Método 1 de 2: usando javax.swing. JFrame
Etapa 1. Obtenha uma instância de um
JFrame
ou crie um novo.
Etapa 2. Definir a operação de fechamento padrão
A operação de fechamento padrão é definida usando o método setter dentro do
JFrame
classe
setDefaultCloseOperation
que determina o que acontece quando o botão Fechar é clicado e assume os seguintes parâmetros:
-
WindowConstants. EXIT_ON_CLOSE
-
WindowConstants. DISPOSE_ON_CLOSE
-
WindowConstants. HIDE_ON_CLOSE
HIDE_ON_CLOSE
e
DISPOSE_ON_CLOSE
- é que o último libera todos os recursos usados pelo quadro e seus componentes.
-
WindowConstants. DO_NOTHING_ON_CLOSE
WindowListener
para o quadro e substituindo
windowClosing
método. Exemplo de operação de fechamento personalizado:
frame.setDefaultCloseOperation (WindowConstants. DO_NOTHING_ON_CLOSE); frame.addWindowListener (new WindowAdapter () {@Override public void windowClosing (WindowEvent e) {// Solicite confirmação antes de encerrar o programa. int option = JOptionPane.showConfirmDialog (frame, "Tem certeza que deseja fechar o aplicativo?", "Fechar confirmação", JOptionPane. YES_NO_OPTION, JOptionPane. QUESTION_MESSAGE); if (opção == JOptionPane. YES_OPTION) {System.exit (0);}}});
Método 2 de 2: usando java.awt. Frame
Etapa 1. Obtenha uma instância de um
Quadro
ou crie um novo.
Etapa 2. Adicionar ouvinte de janela
Ligar
addWindowListener
método na instância. O argumento necessário é
WindowListener
. Você pode implementar todos os métodos do
WindowListener
interface ou sobrescrever apenas os métodos que você precisa
WindowAdapter
classe.
Etapa 3. Lidar com o evento de fechamento da janela
Implemento
windowClosing
método de
WindowListener
interface ou substituí-lo de
WindowAdapter
classe. Existem duas maneiras de fechar uma janela:
-
Descarte a janela depois que o botão Fechar for clicado:
-
Ligar
dispor
método dentro
windowClosing
- método.
frame.addWindowListener (new WindowAdapter () {@Override public void windowClosing (WindowEvent e) {// Descartar a janela depois que o botão Fechar for clicado. dispose ();}});
-
Encerre o programa após clicar no botão Fechar:
-
Ligar
System.exit
método dentro
windowClosing
- método.
frame.addWindowListener (new WindowAdapter () {@Override public void windowClosing (WindowEvent e) {// Encerra o programa após clicar no botão Fechar. System.exit (0);}});
Pontas
- Swing é preferível ao AWT, já que o último está realmente desatualizado.
-
Usando
WindowAdapter
você não tem que implementar cada método
WindowListener
- o contrato nos diz para fazer isso, mas apenas aqueles de que precisamos.