|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Dec 2007
Messaggi: 16
|
[JAVA] Pulsanti disabilitati rispondono lo stesso agli eventi
Salve a tutti, avrei un problema.
Sto facendo un lavoro in java e mi succede una cosa nuova. I pulsanti disabilitati rispondono comunque all'evento clic del mouse. Non so se rispondono anche ad altro, ma a quello sicuro. Ho cercato un pò in giro ma non ho trovato niente, qualcuno saprebbe aiutarmi? Grazie mille. Ciao ![]() |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
MouseEvent è un evento "low-level" e non centra il fatto che hai a che fare con un pulsante, anche disabilitato. Quello che è sicuro è che se il pulsante è disabilitato, certamente non invia l'evento ActionEvent agli ActionListener. Perché è proprio ActionListener il listener che devi usare per "sentire" l'azione sul pulsante!
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Dec 2007
Messaggi: 16
|
scusa ma non ho capito.
Quindi, come evento per azionare il button, cosa devo utizzare invece di MouseClicked? |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
|
![]() |
![]() |
![]() |
#5 |
Bannato
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
|
Riuppo la discussione perchè mi capita lo stesso inconveniente. In pratica se scrivo l'istruzione MioPulsante.setEnabled(false) il pulsante si disabilita ma, cliccandolo, comunque fa ciò che deve fare quando è abilitato... come disabilitare all'utente il pulsante??
Premetto che sono agli albori della programmazione visuale in java... in due giorni ho imparato i rudimenti delle GUI partendo da meno di zero ![]() ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Devi usare il Listener che ho linkato nel mio post precedente, il motivo l'ha spiegato andbin più su
|
![]() |
![]() |
![]() |
#7 | |
Bannato
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
|
Quote:
Grazie ancora |
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
button.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent e) { // .... il pulsante è stato cliccato .... } }); Non a "basso livello" con MouseListener.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#9 |
Bannato
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
|
OK, ora mi è chiaro... ma qual è l'istruzione specifica (il metodo) per disabilitare il pulsante?
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
setEnabled(boolean enabled)
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#11 |
Bannato
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
|
Il problema è che vorrei che il pulsante si disabilitasse dopo che viene cliccato una volta; tuttavia, almeno nell'ActionListener, funziona (cioè si disabilita dal clic) però continua a sortire l'effetto dovuto al clic del mouse sul pulsante in questione... quindi rimuovendo l'ascoltatore ActionListener e trasportando tutto il codice in ActionPerformed dovrebbe funzionarmi correttamente il metodo setEnabled?
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#13 | |
Bannato
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
|
Quote:
EDIT: funziona tutto benissimo; grazie per i consigli!! ![]() Ultima modifica di PaVi90 : 17-02-2008 alle 13:15. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:07.