|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jan 2008
Messaggi: 46
|
[JAVA] JTextField: eseguire operazione subito dopo l'immissione del testo
Salve gente ho il seguente problema: ho una serie di campi di testo gestiti tramite l'oggetto JTextField. Io vorrei che venga eseguita un'operazione subito dopo l'immissione del testo, senza premere alcun JButton o cose così...semplicemente dopo l'immissione del testo, mi posiziono su un altro campo di testo ed in quel momento eseguo l'operazione prevista dal campo riempito precedentemente.
Esempio pratico: vorrei controllare se il campo inserito è un numero intero, se si posso andare avanti a riempire gli altri campi di testo, altrimenti restituisco un messaggio di errore e chiedo di reinserire un intero. Tutto questo potrei farlo andando a fare un Integer.parseint del testo inserito nel campo e poi andandomi a gestire le eccezioni...ma come faccio ad effettuare questa operazione subito dopo l'immissione del testo (ovvero quando il puntatore del mouse non è più su quel campo di testo)? Che tipo di evento devo usare? Spero di essere stato chiaro. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Aug 2011
Messaggi: 672
|
Aggiungi un KeyListener al tuo JTextField e a suo interno sovrascrivi la funzione keyReleased.
Ad esempio, per controllare che non sia vuoto: Codice:
@Override public void keyReleased(KeyEvent e) { String text = this.getText().trim(); if(text.equals("")) { // Codice.. // Ad esempio puoi impostare una var a FALSE return; } } |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Un FocusListener che gestisce l'evento di focusLost del text field mi sembra più attinente alla necessità espressa.
__________________
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) |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Aug 2011
Messaggi: 672
|
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Jan 2008
Messaggi: 46
|
Grazie ad entrambi per le risposte.
![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Aug 2006
Messaggi: 334
|
Dal punto di vista "logico" si potrebbe anche evitare che un carattere venga inserito se non è un intero o un segno di punteggiatura. Basterebbe intercettare l'evento "KeyTyped", controllare l'entità dell'ultimo carattere ed in caso non sia ammesso eliminarlo dal JTextField magari emettendo un beep. In linea di principio puoi usare la solita soluzione espressa da Dan__88.
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:51.