我有这段代码,在插入 n 个字符后“禁用” JTextField 上的用户输入:
JTextField tf = new JTextField();
tf.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
if (((JTextField) e.getSource()).getText().length() > n) {
e.consume();
}
}
});
它可以工作,但我想知道是否有替代方法,因为我在一台旧的慢速计算机上尝试过,当我在文本字段中输入内容时,字母被添加,然后它消失了......我想避免e.consume()
在用户输入后使用并直接阻止插入。
可能吗?
编辑
我忘了提及我JTextField
仅用于此示例,但我希望此代码与通用文本输入组件(如JTextPane
,JTextArea
等)一起使用