将输入极限类更改为函数



我有一个基本类,它允许我限制在JTextField(或任何字段)中输入的字符数,但我想知道是否有办法将该类转换为函数,这样我就可以将该函数与其他辅助函数一起放在"Utilities"类中。如果我能把极限作为函数的一个参数,那将是理想的。

目前它被称为:

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);
        }
    }
}

您可以将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; }
    // ...
}

更改:

private final int charLimit = 10;
InputLimit() { super(); }

收件人:

private final int charLimit = 10;
InputLimit(int charLimit) { 
    super(); 
    this.charLimit = charLimit;
}

创建一个:

textfield.setDocument(new InputLimit(15));

相关内容

  • 没有找到相关文章

最新更新