Questo articolo ti mostrerà come chiudere una finestra in Java. Chiudere una finestra è molto più semplice con Swing's
JFrame
ma è anche fattibile usando AWT's
Portafoto
Passi
Metodo 1 di 2: utilizzo di javax.swing. JFrame
Passaggio 1. Ottieni un'istanza di a
JFrame
o crearne uno nuovo.
Passaggio 2. Impostare l'operazione di chiusura predefinita
L'operazione di chiusura predefinita viene impostata utilizzando il metodo setter all'interno del
JFrame
classe
setDefaultCloseOperation
che determina cosa succede quando si fa clic sul pulsante di chiusura e prende i seguenti parametri:
-
WindowConstants. EXIT_ON_CLOSE
-
WindowCostanti. DISPOSE_ON_CLOSE
-
WindowConstants. HIDE_ON_CLOSE
HIDE_ON_CLOSE
e
DISPOSE_ON_CLOSE
- è che quest'ultimo rilascia tutte le risorse utilizzate dal frame e dai suoi componenti.
-
WindowConstants. DO_NOTHING_ON_CLOSE
WindowListener
al telaio e l'override
finestra in chiusura
metodo. Esempio dell'operazione di chiusura personalizzata:
frame.setDefaultCloseOperation(WindowConstants. DO_NOTHING_ON_CLOSE); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // Chiedi conferma prima di terminare il programma. int option = JOptionPane.showConfirmDialog(frame, "Sei sicuro di voler chiudere l'applicazione?", "Chiudi Conferma", JOptionPane. YES_NO_OPTION, JOptionPane. QUESTION_MESSAGE); if (option == JOptionPane. YES_OPTION) { System.exit(0); } } });
Metodo 2 di 2: utilizzo di java.awt. Frame
Passaggio 1. Ottieni un'istanza di a
Portafoto
o crearne uno nuovo.
Passaggio 2. Aggiungi il listener di finestre
Chiamata
addWindowListener
metodo sull'istanza. L'argomento richiesto è
WindowListener
. Puoi implementare ogni metodo del
WindowListener
interfaccia o sovrascrivi solo i metodi di cui hai bisogno
WindowAdapter
classe.
Passaggio 3. Gestire l'evento di chiusura della finestra
Strumento
finestra in chiusura
metodo da
WindowListener
interfaccia o sovrascriverlo da
WindowAdapter
classe. Ci sono due modi per chiudere una finestra:
-
Elimina la finestra dopo aver fatto clic sul pulsante di chiusura:
-
Chiamata
smaltire
metodo dentro
finestra in chiusura
- metodo.
frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // Elimina la finestra dopo aver fatto clic sul pulsante di chiusura. Dispose(); } });
-
Termina il programma dopo aver fatto clic sul pulsante di chiusura:
-
Chiamata
System.exit
metodo dentro
finestra in chiusura
- metodo.
frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // Termina il programma dopo aver fatto clic sul pulsante di chiusura. System.exit(0); } });
Suggerimenti
- Lo swing è preferito all'AWT poiché quest'ultimo è davvero obsoleto.
-
Usando
WindowAdapter
non devi implementare ogni singolo metodo
WindowListener
- contratto ce lo dice, ma solo quelli di cui abbiamo bisogno.