Chcę wywołać metodę, confirmExit()
gdy zostanie kliknięty czerwony przycisk zamykania paska tytułu JFrame.
Jak mogę uchwycić to wydarzenie?
Chciałbym również zapobiec zamykaniu okna, jeśli użytkownik zdecyduje się nie kontynuować.
java
swing
jframe
windowlistener
alxcyl
źródło
źródło
implements WindowListener
aby ten kod działał? Jeśli tak, dobrze byłoby uwzględnić to w odpowiedzi. W przeciwnym razie jest to eleganckie rozwiązanie.też działa. Najpierw utwórz JFrame o nazwie frame, a następnie dodaj ten kod pod spodem.
źródło
confirmExit()
metody tak, jak chciałby tegoconfirmExit()
po kliknięciu [X]”. A poprzedni komentarz nie ma związku z OQ.To może zadziałać:
jdialog.addWindowListener(new WindowAdapter() { public void windowClosed(WindowEvent e) { System.out.println("jdialog window closed event received"); } public void windowClosing(WindowEvent e) { System.out.println("jdialog window closing event received"); } });
Źródło: https://alvinalexander.com/java/jdialog-close-closing-event
źródło
To jest to, co umieściłem jako opcję menu, gdzie zrobiłem przycisk na a,
JFrame
aby wyświetlić innyJFrame
. Chciałem, żeby tylko nowa rama była widoczna, a nie zniszczona za nią. Pierwszą z nich początkowo ukryłemJFrame
, a nowa stała się widoczna. Po zamknięciu nowegoJFrame
, pozbyłem się go, a następnie uczyniłem ponownie widocznym stary.Uwaga: Poniższy kod rozwija się poza odpowiedzią Ravindy i
ng
jestJButton
:ng.addActionListener((ActionEvent e) -> { setVisible(false); JFrame j = new JFrame("NAME"); j.setVisible(true); j.addWindowListener(new java.awt.event.WindowAdapter() { @Override public void windowClosing(java.awt.event.WindowEvent windowEvent) { setVisible(true); } }); });
źródło
Spróbuj tego:
To będzie działać.
źródło