Ciao ho provato ad impostare il numero massimo di caratteri con:
TextField Text_superiore = new TextField("nome",20); ma non mi impedisce di scrivere dopo il 20esimo carattere.
Ciao ho provato ad impostare il numero massimo di caratteri con:
TextField Text_superiore = new TextField("nome",20); ma non mi impedisce di scrivere dopo il 20esimo carattere.
L'intero che può essere passato alla TextField non riguarda il numero massimo di caratteri ma la dimensione della TextField (intesa come lunghezza orizzontale).
Per fare in modo che la TextField non accetti nulla dopo il ventesimo carattere devi associargli un KeyListener che controlli questo vincolo.
Dai un'occhiata ai tutorial e alla documentazione della classe KeyListener.
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
il parametro che usi è la larghezza del campo
se usi un JFormattedTextField con un formato che preveda al max 20 caratteri dovresbbe funz.
questa è la classe che devi usare
codice:package it.vegaspa.clientFXS.businessLogic; import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.PlainDocument; public class PersonalizzaJtextField extends PlainDocument { private StringBuffer cache = new StringBuffer(); int lunghezzaMax; public PersonalizzaJtextField(int lunghezzaMax){ this.lunghezzaMax = lunghezzaMax; } public void insertString(int off, String s, AttributeSet aset) throws BadLocationException{ int len = getLength(); if(len >= this.lunghezzaMax) { return; } cache.setLength(0); char c; for(int i = 0; i < s.length(); i++) { c = s.charAt(i); cache.append(c); if(cache.length() >= lunghezzaMax - len) { break; } } if(cache.length() > 0) { super.insertString( off, cache.toString(), aset); } } }
la richiami così:
jTextField.setDocument(new PersonalizzaJtextField(numeroCaratteriDaLimitare)) ;
odio chi parla di politica..
anzi vorrei fondare un partito contro tutto ciò
Ehm... sbaglio o l'autore del post utilizza AWT??
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Si, o perlomeno presumo.
TextField è una classe java.awt.
Ciao,
Ciao, Brainjar
Grazie a tutti.
oVviamente devo anche utilizzare un "mouselistener" (esiste?? ahah) nel caso si facesse un copia ed incolla col tatso dentro no??
coff... coff..Originariamente inviato da LeleFT
Ehm... sbaglio o l'autore del post utilizza AWT??
Ciao.
odio chi parla di politica..
anzi vorrei fondare un partito contro tutto ciò
Grazie a tutti.
Ovviamente devo anche utilizzare un "mouselistener" (esiste?? ahah) nel caso si facesse un copia ed incolla col tasto destro no??
Esiste il MouseListener, ovviamente... ma penso che potresti utilizzarlo solamente per "disabilitare" l'eventuale pressione del tasto destro... per evitare che l'utente incolli più caratteri del dovuto, l'unica cosa che mi viene in mente (di rapido utilizzo) è controllare, nel momento in cui utilizzerai i dati contenuti, che la lunghezza sia rispettata, troncando eventualmente i dati ai primi 20 caratteri utilizzando il metodo substring() della classe String.
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza