W tym artykule dowiesz się, jak zamknąć okno w Javie. Zamykanie okna jest znacznie łatwiejsze dzięki Swingowi
JFrame
ale można to również zrobić za pomocą AWT
Rama
Kroki
Metoda 1 z 2: Korzystanie z javax.swing. JFrame
Krok 1. Uzyskaj instancję
JFrame
lub utwórz nowy.
Krok 2. Ustaw domyślną operację zamykania
Domyślna operacja zamykania jest ustawiana za pomocą metody ustawiającej wewnątrz
JFrame
klasa
setDefaultZamknijOperacja
określa, co się stanie po kliknięciu przycisku zamykania i przyjmuje następujące parametry:
-
OknoStałe. EXIT_ON_CLOSE
-
WindowConstants. DISPOSE_ON_CLOSE
-
OknoStałe. HIDE_ON_CLOSE
HIDE_ON_CLOSE
oraz
DISPOSE_ON_CLOSE
- polega na tym, że ta ostatnia uwalnia wszystkie zasoby używane przez ramę i jej komponenty.
-
WindowConstants. DO_NOTHING_ON_CLOSE
WindowListener
do ramy i nadrzędne
Zamykanie okna
metoda. Przykład niestandardowej operacji zamknięcia:
frame.setDefaultCloseOperation(WindowConstants. DO_NOTHING_ON_CLOSE); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // Pytaj o potwierdzenie przed zamknięciem programu. int option = JOptionPane.showConfirmDialog(frame, "Czy na pewno chcesz zamknąć aplikację?", "Potwierdzenie zamknięcia", JOptionPane. YES_NO_OPTION, JOptionPane. QUESTION_MESSAGE); if (opcja == JOptionPane. YES_OPTION) { System.exit(0); } } });
Metoda 2 z 2: Używanie java.awt. Frame
Krok 1. Uzyskaj instancję
Rama
lub utwórz nowy.
Krok 2. Dodaj detektor okna
Połączenie
addWindowListener
metody na instancji. Wymaganym argumentem jest
WindowListener
. Możesz albo zaimplementować każdą metodę
WindowListener
interfejs lub zastąp tylko te metody, których potrzebujesz
OknoAdapter
klasa.
Krok 3. Obsługa zdarzenia zamknięcia okna
Wprowadzić w życie
Zamykanie okna
metoda z
WindowListener
interfejs lub zastąp go z
OknoAdapter
klasa. Okno można zamknąć na dwa sposoby:
-
Usuń okno po kliknięciu przycisku zamykania:
-
Połączenie
dysponować
metoda wewnątrz
Zamykanie okna
- metoda.
frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // Usuń okno po kliknięciu przycisku zamykania. dispose(); } });
-
Zakończ program po kliknięciu przycisku zamykającego:
-
Połączenie
System.wyjście
metoda wewnątrz
Zamykanie okna
- metoda.
frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // Zakończ program po kliknięciu przycisku zamykającego. System.exit(0); } });
Porady
- Swing jest preferowany nad AWT, ponieważ ten ostatni jest naprawdę przestarzały.
-
Za pomocą
OknoAdapter
nie musisz wdrażać każdej metody
WindowListener
- kontrakt nam każe, ale tylko tych, których potrzebujemy.