java - 听众及其对象

标签 java swing awt jtextfield documentlistener

我有一个 JTextField,带有更改文本事件的监听器。

我可以使用此监听器来影响它正在监听的同一对象吗?例如,如果它检测到“有问题”的更改,它应该删除同一 JTextField 对象中的所有文本。

这可能吗?好像不行...

示例如下: .

this.txtSearch.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
    validate();
}

public void removeUpdate(DocumentEvent e) {
    validate();
}

public void insertUpdate(DocumentEvent e) {
    validate();
}

private void validate(){
    if not_good(txtSearch.getText()) {
        txtSearch.setText("");
    }
}

最佳答案

通过 textChanged 事件更改 JTextField 中的文本可能会导致 textChanged 事件循环(可能是无限循环)。不要这样做。

如果您想验证 JTextField 的输入,请使用 InputVerifier .

javadoc 包含 some examples of how to use it ,看看吧。

关于java - 听众及其对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10902611/

相关文章:

java - 如何检查一种模式是否包含在另一种模式中

java - 如何使用 Angularjs、Java、Tomcat、Spring 和 REST 下载 10GB 的文件?

java - 是否存在 swing 可过滤 JList 组件?

java - 在 JOptionPane、DocumentListener 中使用 TextFields 面板? - 初学者

java - Alt+Tab 使用 Java 机器人

java - 获取 javaFX 8 中节点的屏幕坐标

来自字符串 "Yellow"的 Java 颜色

java - 在 Java 8 中使复杂方法可中断

java - Oracle 是否删除了 Sun net.ftp 类?

java - 将四个按钮放置在十字形图案中,但彼此靠近