删除字符后Java JTextField文本长度不更新

时间:2016-10-22 22:05:49

标签: java string swing jtextfield string-length

我正在尝试创建一个带有键侦听器的JTextField,只有当文本的长度正好为4时才会启用按钮。

它正在工作但是如果达到4的长度,并且我删除了一个字符(使用退格键或删除按钮),文本长度不会更新并保持为4,直到我删除另一个字符,但是这将使它实际上是2个字符。

你可以帮助我使用代码来更新它吗?提前谢谢。

我已经尝试过这些但没有成功

Document doc = field.getDocument();
if (doc.getLength() > 0) {
    try {
        doc.remove(field.getCaretPosition(), 1);
    } catch (BadLocationException e1) {
    }
}

field.setText(field.getText().substring(0, field.getText().length()));

1 个答案:

答案 0 :(得分:0)

发现错误:

我正在调用方法来启用KeyListener的{​​{1}}方法中的按钮,而不是在keyTyped方法中执行此操作。

这个简单的改变使代码按预期工作。