PDA

Visualizza la versione completa : [JAVA] Altra query :)


Zero-2
29-12-2002, 14:33
Quando chiudo una JInternalFrame ho fatto in modo di far comparire un JOptionPane con 3 possibilità , si ,no e cancella.
Vorrei fare in modo che quando premo cancella , la finestra non si chiuda, ma rimanga visibile.
Ho provato con il metodo wait() , ma lancia un'eccezzione .
Come posso fare?:dhò: :dhò:

blinkago
29-12-2002, 15:48
Si il modo c'è!!

è un metodo che permette di impostare l'azione alla chiusura, naturalmente, poi sarai tu a chiudere e a distruggere il frame...

perciò fai così:

[JFrame].setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLO SE);

Zero-2
29-12-2002, 16:21
Però così non mi intercetta proprio l'azione di chiusura :(
cioè se io premo sulla x per chiudere il JInternalFrame non mi da nessuna possibilità di azione :(
O sono io fuori :) o non so .... :confused: :confused: :confused:

Zero-2
29-12-2002, 17:03
Ho risolto .
Mi è bastato aggiungere queste righe di codice:

if(result ==JOptionPane.CANCEL_OPTION)
throw new PropertyVetoException("User Canceled close",event);


:metallica :metallica :metallica Tnx :)

blinkago
29-12-2002, 19:51
No!
è pesante generare un eccezione!!!

Fai come dico io che l'evento viene lanciato los stesso, fidati!!!

Zero-2
29-12-2002, 19:54
Ho fatto come dicevi tu , ma non mi lanciava nulla:(:(
perchè continuavo a cliccare sulla x per la chiusura della JINternalFrame ,ma non succedeva un bel piffero :) (normale dato che avevo impostato come opzione di chiusura nessuna azione )

blinkago
29-12-2002, 19:58
Scusa un'attimo!
Hai aggiunto il windowListener?
E il codice per far apparire il l'optionPane?

Zero-2
29-12-2002, 20:05
Hai aggiunto il windowListener?

Non posso aggiungere un windowListener ad un JInternalFrame:(Non c'è l'addWindowListener(WindowListener l) come nel JFrame.

Il codice per l'option Pane c'è

blinkago
29-12-2002, 20:10
Vabbè sì l'internalFrameListener, è la stessa cosa!!

L'evento dovrebbe essere generato lo stesso!!!

Zero-2
29-12-2002, 20:14
Forse non mi intercetta l'eccezione perchè uso l'interfaccia VetoableChangeListener
Devo creare una classe che implementi l'internalFrameListener :)
però a dire il vero mi scoccia un pochetto riscrivere un pezzo di prgoramma :( Dicic he è molto pesante fare così? eppure è consigliato sul manuale :)

Loading