PDA

View Full Version : Tastiera....in Java


skyn80
26-02-2004, 08:41
Salve gente,
avrei la necessità di disabilitare la tastiera per non poter scrivere in una TextField ma solo le lettere i numeri no. Conoscete qualche comando opportuno?
Grazie...a tutti

kingv
26-02-2004, 08:58
non ho capito per disabilitare la tastiera cosa intendi.

se in un textfield vuoi scrivere solo lettere mi vengono in mente due modi:


1) aggiungi al textfield un listener (CaretListener, penso) e nel listener "cancelli" qualsiasi input non sia una lettera. non e' un modo molto elegante :O

2) estendi la classe JTextField overridando il metodo createDefaultModel(), facendogli ritornare una classe che estende Document e che rifiuta gli input che non vuoi. penso sia migliore del precedente.

skyn80
26-02-2004, 09:02
Originariamente inviato da kingv
non ho capito per disabilitare la tastiera cosa intendi.

se in un textfield vuoi scrivere solo lettere mi vengono in mente due modi:


1) aggiungi al textfield un listener (CaretListener, penso) e nel listener "cancelli" qualsiasi input non sia una lettera. non e' un modo molto elegante :O

2) estendi la classe JTextField overridando il metodo createDefaultModel(), facendogli ritornare una classe che estende Document e che rifiuta gli input che non vuoi. penso sia migliore del precedente.

Forse prima non ho scritto molto bene in italiano. freatta!
In pratica in una textField io voglio scrivere solo numeri e non lettere.
Ciao e grazie ancora

cn73
26-02-2004, 09:50
Come ti è stato detto, aggiungi un KeyListener alla tua textBox, testi il tasto premuto, e se non ti va bene consumi l'evento...
jTextField.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent k)
{
if (k.getKeyCode() .... )
.....
else
k.consume();
}
});

cn73
26-02-2004, 09:53
Per testare facilmente se un carattere è una cifra puoi usare

Character.isDigit( carattere)

kingv
26-02-2004, 10:52
giusto, un KeyListener e non un CaretListener :O