Oppure

Loading
01/07/10 8:55
Bonny
Sto sviluppando un programma con delle JTextField e voglio limitare il numero di caratteri da inserire ho trovato qst esempio :
class JTextFieldLimit extends PlainDocument {

private int limit;

JTextFieldLimit(int limit) {
super();
this.limit = limit;
}

JTextFieldLimit(int limit, boolean upper) {
super();
this.limit = limit;
}

@Override
public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException {
if (str == null) {
return;
}

if ((getLength() + str.length()) <= limit) {
super.insertString(offset, str, attr);
}
}
}
}
poi quandi inizializzo il form ad ogni JTextField eseguo :
nome.setDocument(new JTextFieldLimit(10));
Questo funziona ma solo con una delle Jtxtf del programma , la prima su cui vado a digitare il testo.
Non capisco quale sia il problema se per favore riuscite ad aiutarmi mi sareste di grande aiuto.
trovo strano che in java bisogna fare tutto sto casino per risolvere qst prob(o sono io che non applico il metodo più semplice) a differenza, per esempio, di Vb.net che basta settare una delle proprieta della textbox.
aaa
03/07/10 12:56
tekdu
credo che la cosa migliore sia creare una classe che estends jtextfield e riscrivere il metodo setText(String s) cosi:


public class LimitedJTextField extends JTextField{

int limit;
public LimitedJTextField(int l){
limit=l;
}
@override
public void setText(String s){
if(s.getLenght()<limit) super.setText(s)
else super.setText(s.subString(0,limit));
}




aaa
06/07/10 11:18
Bonny
Grazie mille!
aaa