View Single Post
Old 23-07-2010, 15:30   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da d_cainoii Guarda i messaggi
Ho due classi, un classe principale, facciamo il Main e una classe secondaria chiamata Finestra
Finestra ha l'unico scopo di creare una finestra, tramite Jpanel e Jframe il quale contiene un'unico bottone "chiudi", premendo il suddetto bottone dovrebbe chiudersi la finestra ma non il Main
Molto semplicemente, nel metodo actionPerformed dell'ActionListener registrato sul tuo bottone "chiudi" crei un WindowEvent con il messaggio "Window Closing" e lo invii al JFrame da chiudere.
Ovviamente devi avere a disposizione un riferimento a quel JFrame.

Esempio (FRAME è il riferimento al JFrame da chiudere).
Codice:
...

public void actionPerformed(ActionEvent e) {
    WindowEvent close = new WindowEvent(FRAME, WindowEvent.WINDOW_CLOSING);
    FRAME.dispatchEvent(close);
}
In questo modo invece di chiamare un setVisible(false) sul JFrame piuttosto che un dispose(), gli verrà inviata una "generica" richiesta di chiusura che il tuo JFrame onorerà secondo la politica di chiusura che gli hai impostato quando gli hai detto:
Codice:
...
fin.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
...
In questo modo, in altre parole, premere sul tuo bottone "chiudi" risulterà equivalente al premere sul bottone-icona di chiusura della finestra che è normalmente presente nella barra del titolo.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 23-07-2010 alle 15:36.
banryu79 è offline   Rispondi citando il messaggio o parte di esso