In dit artikel wordt uitgelegd hoe u een venster in Java sluit. Een raam sluiten is veel gemakkelijker met Swing's
JFrame
maar het is ook te doen met AWT's
Kader
Stappen
Methode 1 van 2: javax.swing. JFrame gebruiken
Stap 1. Verkrijg een instantie van a
JFrame
of maak een nieuwe aan.
Stap 2. Stel de standaard sluitbewerking in
Standaard sluitbewerking wordt ingesteld met behulp van de setter-methode in de
JFrame
klas
setDefaultCloseOperation
die bepaalt wat er gebeurt wanneer op de sluitknop wordt geklikt en de volgende parameters heeft:
-
Vensterconstanten. EXIT_ON_CLOSE
-
Vensterconstanten. DISPOSE_ON_CLOSE
-
Vensterconstanten. HIDE_ON_CLOSE
HIDE_ON_CLOSE
en
DISPOSE_ON_CLOSE
- is dat de laatste alle bronnen vrijgeeft die door het frame en zijn componenten worden gebruikt.
-
Vensterconstanten. DO_NOTHING_ON_CLOSE
VensterLuisteraar
naar het frame en overheersend
raamSluiten
methode. Voorbeeld van de aangepaste sluitingsbewerking:
frame.setDefaultCloseOperation(WindowConstants. DO_NOTHING_ON_CLOSE); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // Vraag om bevestiging voordat u het programma beëindigt. int option = JOptionPane.showConfirmDialog(frame, "Weet u zeker dat u de toepassing wilt sluiten?", "Bevestiging sluiten", JOptionPane. YES_NO_OPTION, JOptionPane. QUESTION_MESSAGE), if (option == JOptionPane. YES_OPTION) { System.exit (0); } } });
Methode 2 van 2: java.awt. Frame gebruiken
Stap 1. Verkrijg een instantie van a
Kader
of maak een nieuwe aan.
Stap 2. Vensterluisteraar toevoegen
Telefoongesprek
addWindowListener
methode op de instantie. Het vereiste argument is
VensterLuisteraar
. U kunt ofwel elke methode van de implementeren
VensterLuisteraar
interface of overschrijf alleen de methoden die u nodig hebt van
Raamadapter
klas.
Stap 3. Behandel de gebeurtenis voor het sluiten van het venster
Implementeren
raamSluiten
methode van
VensterLuisteraar
interface of overschrijf het van
Raamadapter
klas. Er zijn twee manieren om een venster te sluiten:
-
Gooi het venster weg nadat op de sluitknop is geklikt:
-
Telefoongesprek
weggooien
methode binnen
raamSluiten
- methode.
frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // Gooi het venster weg nadat op de sluitknop is geklikt. Throw();} });
-
Beëindig het programma nadat op de knop Sluiten is geklikt:
-
Telefoongesprek
Systeem.exit
methode binnen
raamSluiten
- methode.
frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // Beëindig het programma nadat op de sluitknop is geklikt. System.exit(0);} });
Tips
- Swing heeft de voorkeur boven AWT aangezien deze laatste echt achterhaald is.
-
Gebruik makend van
Raamadapter
je hoeft niet elke methode te implementeren
VensterLuisteraar
- contract ons dat zegt, maar alleen degene die we nodig hebben.