xevil21 Napisano Czerwiec 7, 2011 Zgłoś Share Napisano Czerwiec 7, 2011 Witam. Chciałem zamknąć okienko typu JInternalFrame wysyłając komunikat. Wzorując się na działającym przykładzie dla okna JFrame: java.awt.Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(new java.awt.event.WindowEvent(this, java.awt.event.WindowEvent.WINDOW_CLOSING)); java.awt.Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(new javax.swing.event.InternalFrameEvent(this, javax.swing.event.InternalFrameEvent.INTERNAL_FRAME_CLOSING)); Zamykanie z przycisku X działa ok, natomiast nie mogę sobie poradzić, aby ten sam efekt uzyskać klikając na stworzony na formatce JButton. Pokazany wyżej komunikat nie działa, tzn. nic się nie dzieje. Pozdrawiam! P.S. Post napisałem również na forum elektrody, akt desperacji. Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Czerwiec 7, 2011 Zgłoś Share Napisano Czerwiec 7, 2011 A czemu na obiekcie JInternalFrame nie wywołasz metody dispose() ? Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Czerwiec 7, 2011 Autor Zgłoś Share Napisano Czerwiec 7, 2011 A czemu na obiekcie JInternalFrame nie wywołasz metody dispose() ? Metodę dispose() wykonuje: public void internalFrameClosing(InternalFrameEvent e) { int i; Object options[] ={"Tak","Nie"}; i = JOptionPane.showOptionDialog(null, "Czy chcesz zamknąć to okno?","Okno ''Popraw''",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE, null, options, options[1]); if (i==0) { this.dispose(); } } Kiedy naciskam na formatce przycisk "x" znajdujący się na belce tytułowej, wszystko działa, dostaje pytanie czy chce zamknąć i mogę wybrać. Chcę ten sam efekt osiągnąć po naciśnięciu stworzonego przycisku, niestety nie działa. Jak w przycisku wykonam dispose() to formatka znika, a jak setCloseed(true) to pyta czy chce zamknąć, lecz nawet jak wybiorę nie, to i tak się zamyka. Pozdrawiam. Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Czerwiec 8, 2011 Autor Zgłoś Share Napisano Czerwiec 8, 2011 Witam. Postanowiłem przyjrzeć się bliżej plikowi źródłowemu JInternalFrame, i tam znalazłem proste rozwiązanie mojego problemu. Komunikat można wysłać w ten sposób: this.fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_CLOSING); Wszystko pięknie działa, jednak proszę o opinie, czy to dobre podejście. Mam mało doświadczenie w Javie, nie chce nabrać złych nawyków. Pozdrawiam. Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.