更改JTextfield的侦听器

时间:2015-03-07 09:23:41

标签: java swing user-interface listener jtextfield

我制作了一个动态从Panel获取数据的程序,但是我的代码需要用户点击输入按钮才能更新数据。是否有更改侦听器或其他侦听器可以在更新时从Jtextfield更新数据?谢谢!

2 个答案:

答案 0 :(得分:4)

只需在文本字段中添加一个侦听器,以便在文本更改时跟踪

textfieldName.getDocument().addDocumentListener(new DocumentListener() {
    // implement the methods
});

答案 1 :(得分:0)

如前所述 - 使用DocumentListener来跟踪jTextField上的更改,但是,由于DocumentListener是一种“过度工程化”,并且很少有用例必须区分不同类型的更改(insertUpdate,removeUpdate和changedUpdate) ),你能做的是:

创建一个扩展DocumentListener的接口,并提供所有DocumentListener方法的默认实现:

@FunctionalInterface
public interface SimpleDocumentListener extends DocumentListener {
    void update(DocumentEvent e);

    @Override
    default void insertUpdate(DocumentEvent e) {
        update(e);
    }
    @Override
    default void removeUpdate(DocumentEvent e) {
        update(e);
    }
    @Override
    default void changedUpdate(DocumentEvent e) {
        update(e);
    }
}

然后在你的jTextField上使用它:

jTextField.getDocument().addDocumentListener(new SimpleDocumentListener() {
    @Override
    public void update(DocumentEvent e) {
        // Your code here
    }
});

或者您甚至可以将它与lambda表达式一起使用:

jTextField.getDocument().addDocumentListener((SimpleDocumentListener) e -> {
    // Your code here
});