Aquest article us mostrarà com es tanca una finestra a Java. Tancar una finestra és molt més fàcil amb Swing
JFrame
però també es pot fer amb AWT
Marc
Passos
Mètode 1 de 2: utilitzar javax.swing. JFrame
Pas 1. Obteniu una instància de
JFrame
o bé creeu-ne un de nou.
Pas 2. Definiu l'operació de tancament per defecte
L'operació de tancament per defecte s'estableix mitjançant el mètode setter dins del fitxer
JFrame
classe
setDefaultCloseOperation
que determina què passa quan es fa clic al botó de tancament i pren els paràmetres següents:
-
WindowConstants. EXIT_ON_CLOSE
-
WindowConstants. DISPOSE_ON_CLOSE
-
WindowConstants. HIDE_ON_CLOSE
HIDE_ON_CLOSE
i
DISPOSE_ON_CLOSE
- és que aquest últim allibera tots els recursos utilitzats pel marc i els seus components.
-
WindowConstants. DO_NOTHING_ON_CLOSE
WindowListener
al marc i substitueix
finestraTancament
mètode. Exemple de l'operació de tancament personalitzada:
frame.setDefaultCloseOperation (WindowConstants. DO_NOTHING_ON_CLOSE); frame.addWindowListener (new WindowAdapter () {@Override public void windowClosing (WindowEvent e) {// Demaneu confirmació abans de finalitzar el programa. int option = JOptionPane.showConfirmDialog (frame, "Esteu segur que voleu tancar l'aplicació?", "Confirmació de tancament", JOptionPane. YES_NO_OPTION, JOptionPane. QUESTION_MESSAGE); if (opció == JOptionPane. YES_OPTION) {System.exit (0);}}});
Mètode 2 de 2: utilitzar java.awt. Frame
Pas 1. Obteniu una instància de
Marc
o bé creeu-ne un de nou.
Pas 2. Afegiu un oient de finestres
Anomenada
addWindowListener
mètode a la instància. L’argument requerit és
WindowListener
. Podeu implementar tots els mètodes del fitxer
WindowListener
interfície o anul·leu només els mètodes que necessiteu
WindowAdapter
classe.
Pas 3. Gestioneu l'esdeveniment de tancament de finestres
Implementar
finestraTancament
mètode de
WindowListener
interfície o anul·leu-la des de
WindowAdapter
classe. Hi ha dues maneres de tancar una finestra:
-
Desfer la finestra després de fer clic al botó de tancament:
-
Anomenada
disposar
mètode dins
finestraTancament
- mètode.
frame.addWindowListener (new WindowAdapter () {@Override public void windowClosing (WindowEvent e) {// Desfer la finestra després de fer clic al botó de tancament. dispose ();}});
-
Acabeu el programa després de fer clic al botó de tancament:
-
Anomenada
System.exit
mètode dins
finestraTancament
- mètode.
frame.addWindowListener (new WindowAdapter () {@Override public void windowClosing (WindowEvent e) {// Termineu el programa després de fer clic al botó de tancament. System.exit (0);}});
Consells
- El swing es prefereix a AWT, ja que aquest últim està obsolet.
-
Utilitzant
WindowAdapter
no cal que implementeu tots i cadascun dels mètodes
WindowListener
- el contracte ens ho indica, però només els que necessitem.