PDA

Visualizza la versione completa : [Java] Lunghezza TextField


pgm
13-05-2002, 10:56
Ciao a tutti!
Qualcuno mi sa dire se c'è un modo per dare una lunghezza fissa di caratteri inseribili in un TextField?
Un pò come "maxlength" in html.

Grazie per gli eventuali aiuti.

pgm

floyd
13-05-2002, 11:17
credo che il modo più veloce sia aggiungere un KeyListener e fare il controllo dentro un metodo :master:

pgm
13-05-2002, 12:30
ma non è possibile farlo nel momento in cui si crea TextFiled?
Es.
TextField testo = new TextField(30); ???

Pgm

pippo75
13-05-2002, 12:41
ti sei già risposto ....

blinkago
13-05-2002, 12:45
no!
O lo controlli alla fine oppure dovresti fare una cosa del genere solo che non funziona con il TextField! è solo un idea!cmq funziona con una textarea


//Codice:
//s1 e s2 =JTextArea


public void textValueChanged(TextEvent e){
Object source = e.getSource();
// System.out.println("Premuto un tasto su"+source);
if ((source==s1)||(source==s2)) {
try{
s1.setText(s1.getText().substring(0,1));
s2.setText(s2.getText().substring(0,1));
}catch(StringIndexOutOfBoundsException ex){}
}
}


per i textField dovresti cambiare l'evento ma non so proprio come fare!!!

pgm
13-05-2002, 12:45
Così non funziona però! Infatti avevo già provato. Se metto tra parentesi "..new TextField(20)", riesco a scrivere più di 20 caratteri; io vorrei che si fermassero a 20.

pgm :rolleyes:

blinkago
13-05-2002, 12:49
Ti conviene controllarlo alla fine e basta!
Altrimenti prova col keyListener!

blinkago
13-05-2002, 13:24
Così va un po' meglio!



KeyListener k = new KeyAdapter() {
public void keyTyped(KeyEvent e) {
Object source = e.getSource();
System.out.println("Premuto un tasto su" + source);
if ((source == s1) || (source == s2)) {
try {
s1.setText(s1.getText().substring(0, 5));
s2.setText(s2.getText().substring(0, 5));
} catch (StringIndexOutOfBoundsException ex) {
}
}
}
};


nemmeno di tanto perchè almeno funziona ma aggiunge in fondo alla stringa l'ultimo carattere digitato, sempre nella stessa posizione!

Nota devi aggiungerlo così:

s1.addKeyListener(k);
s2.addKeyListener(k);


Modificalo se riesci!

Loading