【发布时间】:2015-03-01 05:44:35
【问题描述】:
我有一个基本类,它允许我限制在 JTextField(或与此相关的任何字段)中输入的字符数,但我想知道是否有办法将类转换为函数,以便我可以把我的“实用程序”类中的函数以及我的其他辅助函数。如果我可以将限制作为函数的参数,那将是理想的。
目前是这样称呼的:
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);
}
}
}
【问题讨论】:
-
那么,你想创建一个
static方法吗?用什么签名? -
使用 DocumentFilter 代替 PlainDocument,您演示的方法已经过时了 10 多年
-
是的,我想创建一个静态方法,但不确定您所说的签名是什么意思。 @MadProgrammer,我是否需要同时实现 DocumentFilter 的 insertString 和 replace 方法,是否需要先将 JTextfield 设置为 AbstractDocument ,如stackoverflow.com/questions/7527323 所示?
标签: java swing jtextfield user-input