我正在开发Java swing程序,我想创建一个JTextField
,但字符数限制。所以,我创建了这个类:
public class PersonalizzaJtextField extends PlainDocument {
private int lunghezzaMax;
public PersonalizzaJtextField(int lunghezzaMax){
super();
this.lunghezzaMax = lunghezzaMax;
}
public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException{
if (str == null)
return;
if ((getLength() + str.length()) <= lunghezzaMax) {
super.insertString(offset, str, attr);
}
}
}
现在,当我尝试创建一个JTextField,限制characthers的数量时,它确实有效。 我使用过这段代码:
public class Main extends JFrame {
JTextField textfield1;
JLabel label1;
public void init() {
setLayout(new FlowLayout());
label1 = new JLabel("max 10 chars");
textfield1 = new JTextField(15);
add(label1);
add(textfield1);
textfield1.setDocument(new PersonalizzaJtextField(10));
setSize(300,300);
setVisible(true);
}
}
我该如何解决?