Newsgroup: it.comp.java
Titolo: JButton e KeyEvent

Buon giorno a tutti  e buon inizio di fine settimana!
Ho un problemino da porvi:
in una finestra da me creata, ho inserito un bottone. Cliccandoci sopra, 
ovviamente, succede qualche cosa. Il mio problema è questo: vorrei che 
schiacciando il tasto "return" sulla tastiera succedessero le stesse 
cose che succedono cliccandoci sopra. Per il momento sono riuscito ad 
intercettare l'evento del tasto schiacciato, ma non riesco ad andare avanti.
C'è qualche anima pia che potrebbe darmi una mano?
Grazie mille in anticipo!
A.

Se hai intercettato l'evento con un KeyListener, devi solo implementare
i suoi metodi con il tuo actionPerformed dell'ActionListener collegato
al tuo JButton.
Detto ciò, puoi gestire tutto più facilmente con il setMnemonic(int)
di AbstractButton (che JButton eredita)

 
Come l'altra volta sei stato gentilissimo. Ora provo a fare ciň che mi 
dici e poi ti faccio sapere se ci riesco!
Ancora grazie mille!
A.

 al tuo JButton. 
Mi spiace essere ancora qua e mi scuso a priori della mia somma ignoranza.
Allora, ho provato a fare come dici tu ma niente... Riesco far 
"scrivere" sul terminale - alla pressione ed al rilascio del tasto in 
questione (quello di ENTER) una frase stupida. Il passaggio che mi manca 
č dove "mettere" il mio actionPerformed (magari sbaglio a cosa devo 
collegarlo).
 > Detto ciň, puoi gestire tutto piů facilmente con il setMnemonic(int)
 > di AbstractButton (che JButton eredita)
Ho provato a leggere la documentazione: quello che sono riuscito a fare 
č di "invocare" il metodo setMnemonic() - inserendo il parametro int 10 
(ossia quello dell'ENTER) al bottone in questione. Ovviamente, data la 
mia ignoranza, non fa niente!
Grazie ancora dell'eventuale aiuto e.... chiedo umilmente scusa per le 
domande sicuramente stupide.
A.

Risposta valida per entrambe le domande.
Devi attaccare un ActionListener (con addActionListener) al tuo
JButton.
L'unico metodo di questa interfaccia è actionPerformed che è per
l'appunto il metodo che parte premendo il pulsante a cui hai attaccato
il listener suddetto.
Altra cosa. Non usare il valore "10" per l'enter bensì
KeyEvent.VK_ENTER

 
Grazie mille per la solita gentilezza.
Probabilmente non mi sono spiegato bene io: se io il pulsante in 
questione lo "clicco" col mouse funziona tutto (infatti come dici tu ho 
implementato l'interfaccia ActionListener). Il punto è che io vorrei 
fargli fare le stesse cose non cliccando col mouse il bottone, ma 
solamente schiacciando il tasto ENTER. E' qui che mi perdo. Non so come 
"attaccare" il Listener da me creato al "tasto ENTER".
 > Altra cosa. Non usare il valore "10" per l'enter bensì
 > KeyEvent.VK_ENTER
 >
Fatto, ma il problema è che, come sempre (sono proprio un niubbo 
gigante) non succede niente!
Io faccio:
		mioBottone.setMnemonic(KeyEvent.VK_ENTER);
E poi?
Sei veramente gentilissimo e molto paziente. Spero, anche se ne dubito, 
di poter qualche volta ricambiare le tue cortesie!
(P.S. Se hai bisogno di qualsiasi cosa riguardante la musica fammi un 
fischio! :) )
A.

Se insieme premi l'ALT vedi che funziona (devi leggere la
documentazione).
Altrimenti, premesso che action è l'istanza del tuo listener, puoi
fare una cosa del genere
		b.registerKeyboardAction(action,Keb.registerKeyboardAction(action,KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0),JButton.WHEN_IN_FOCUSED_WINDOW);

Se insieme premi l'ALT vedi che funziona (devi leggere la
documentazione).
Altrimenti, premesso che action è l'istanza del tuo listener, puoi
fare una cosa del genere
		b.registerKeyboardAction(action,KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0),JButton.WHEN_IN_FOCUSED_WINDOW);

pio...@inwind.it
 ha scritto:

Ma grazie!   Sono proprio un pippa di grandezza gigante! 
Funziona...bastava schiacciare il tasto ALT... ma come sono scemo....
Ora non mi uccidere.... ma non si può eliminare la pressione 
contemporanea del tasto ALT? Sarebbe solo una finezza, non ci sarebbe 
comunque problemi.
Purtroppo so che romperò, se non a te in particolare a tutto il news, 
ancora per qualche tempo: sto finendo sto progettino e vorrei non fare 
la figura proprio del .... niubbo...
:)
A.

Te l'ho appena scritto come fare.

pio...@inwind.it
 ha scritto:

.... ma hai ragione anche tu... sono proprio un mongolo... :)
Ancora grazie: sono riuscito!
Sono sicuro che, per tua disgrazia, ci si risentirà. :)
A.