Toată lumea știe că fereastra JFrame are un titlu, care, printre altele, are un buton de închidere a ferestrei. Există situații în care trebuie să afișați utilizatorului o fereastră de confirmare după ce faceți clic pe butonul de închidere. Să vedem cum puteți implementa o astfel de funcționalitate. Primul lucru de analizat este metoda setDefaultCloseOperation a clasei JFrame. Folosind această metodă, dezvoltatorul îi spune lui JFrame, pe care îl creează, ce trebuie făcut atunci când fereastra este închisă. De foarte multe ori, JFrame.EXIT_ON_CLOSE constant este trecut la această metodă. Dacă metoda setDefaultCloseOperation pentru a trece această constantă, atunci când închideți fereastra, programul se va opri de lucru. Acum trebuie să trecem aici constanta JFrame.DO_NOTHING_ON_CLOSE. Dacă treceți această constantă, atunci când fereastra este închisă, nimic nu se va întâmpla. De fapt, asta este ceea ce avem nevoie, pentru că vom închide fereastra și vom ieși din aplicație din cod. Așa că utilizatorul apasă pe butonul Închidere trebuie să stea pe ascultător JFrame WindowListener și dau seama că windowClosing metoda. Aici, vom arăta utilizatorului un dialog de confirmare, verificați dacă răspunsul său (sunt de acord pentru a închide fereastra sau nu) și răspunde în mod adecvat.Dialogul va fi afișat folosind următorul cod.
Indicele variantei alese de utilizator va fi returnat la variabila n. Aceasta este, în acest caz, n = 0, dacă utilizatorul a ales "Da" și n = 1, dacă "Nu". Odată ce utilizatorul apasă butonul de închidere, a declanșat handler-ul nostru și el a numit metoda windowClosing parametru eveniment WindowEvent. Acest parametru este un obiect de eveniment. Din acesta puteți obține un link către fereastra ferestrei, pe care o puteți închide. O facem așa.
Folosind a doua linie, îi spunem sistemului că trebuie să terminăm aplicația. Dacă îl eliminați, fereastra se va închide, dar aplicația va rămâne suspendată în memorie. Asta e tot. Și acum un caz de testare.
Mi-a plăcut acest lucru:
Navigare după înregistrări
Pentru a nu scrie prea mult, folosiți adaptorul:
frame.addWindowListener (noul WindowAdapter ()<…>);
Articole recente
Nori de etichete
statistică
. astfel de bloggeri ca: