我有一个基本类,允许我限制在JTextField(或任何字段)中输入的字符数,但我想知道是否有办法将类转换为函数,所以我可以把我的"公用事业"中的功能class,与我的其他帮助函数。如果我可以将限制作为函数的参数,那将是理想的。
目前它的调用方式如下:
textfield.setDocument(new InputLimit());
我希望能够这样称呼它:
textfield.setDocument(Utilities.setInputLimit(10));
我的课程如下:
public class InputLimit extends PlainDocument {
private final int charLimit = 10;
InputLimit() {
super();
}
public void insertString(int offset, String str,
AttributeSet attr) throws BadLocationException {
if (str == null) {
return;
}
if ((getLength() + str.length()) <= charLimit) {
super.insertString(offset, str, attr);
}
}
}
答案 0 :(得分:1)
您可以将charLimit
作为构造函数参数传递为
textfield.setDocument(new InputLimit(10));
只需在您的班级中添加以下构造函数
public class InputLimit extends PlainDocument {
private final int charLimit = 10;
// Keep this if you want a no-arg constructor too
InputLimit() { super(); }
// compiler will auto add the super() call for you
public InputLimit(int limit) { this.charLimit = limit; }
// ...
}
答案 1 :(得分:1)
变化:
private final int charLimit = 10;
InputLimit() { super(); }
要:
private final int charLimit = 10;
InputLimit(int charLimit) {
super();
this.charLimit = charLimit;
}
创建一个:
textfield.setDocument(new InputLimit(15));