Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Intercettare pressione tasto
Forum - Java - Intercettare pressione tasto "Invio"

Avatar
upitusu (Normal User)
Newbie


Messaggi: 7
Iscritto: 02/05/2012

Segnala al moderatore
Postato alle 13:04
Domenica, 17/06/2012
ciao a tutti,

dopo aver creato un pannello con un JLabel, un JTextField, ed un bottone start vorrei avviare il metodo direttamente alla pressione "Invio" ma non riesco a leggere la pressione del tasto sulla tastiera...

Codice sorgente - presumibilmente Java

  1. campo_codice.addKeyListener(new KeyAdapter(){    
  2.       public void KeyPressed(KeyEvent e){
  3.         if(e.getKeyCode()==KeyEvent.VK_ENTER){
  4.            System.out.println("Ho premuto invio");  
  5.         }
  6.       }
  7.     });



campo_codice è il JTextField sul quale ho attivato il keyListener... ma niente!!! Dove sbaglio?? :(

PM Quote
Avatar
davide94 (Member)
Rookie


Messaggi: 23
Iscritto: 09/11/2011

Segnala al moderatore
Postato alle 15:19
Domenica, 17/06/2012
Ciao ho provato a eseguire il codice e come previsto non va :)
Il motivo è abbastanza semplice , il JtextField non usa gli KeyListener,ecc. al contrario del JPanel. Io avevo già provato con un mouseListener per un JScrollPane e non  funzionava.
Comunque per il tuo problema, la soluzione è semplice.
Usi ActionListener che è attivato con la pressione del tasto enter nel jtextfield.
Oppure add un KeyListener al JPanel e da li' se preme tasto invio acquisisci il testo contenuto nel jtextfield.
Tuttavia un modo deve esserci anche se lo ignoro, nel usare i keyListener,ecc. dei vari componenti.

PM Quote
Avatar
upitusu (Normal User)
Newbie


Messaggi: 7
Iscritto: 02/05/2012

Segnala al moderatore
Postato alle 16:06
Domenica, 17/06/2012
Effettivamente hai ragione! Ho inserito il listener sul JTextFiel e funziona. Facendo una ricerca su internet però ho visto che si può catturare la pressione dei tasti tramite la funzione KeyPressed comunque anche così va bene!!

:)

PM Quote