0

我有一个实现 DocumentListener 的类:

    public class MyListener implements DocumentListener{

            private JTextField textField;

            public MyListener(JTextField textField) {
                LOGGER.info("listener constructor");
                this.textField = textField;
            }
            @Override
            public void insertUpdate(DocumentEvent e) {
                LOGGER.info("insert update");
            }
            @Override
            public void removeUpdate(DocumentEvent e) {
                LOGGER.info("removeupdate");
            }
            @Override
            public void changedUpdate(DocumentEvent e) {
                LOGGER.info("CHANGED UPDATE");
            }   
}

我尝试将 DocumentListener 添加到我的文本字段中,但是当我运行程序时,没有显示任何日志记录语句:

private JTextField createTextField() {

    JTextField tf = new JTextField(30);
    tf.setName("name");

    tf.getDocument().addDocumentListener(new MyListener(tf));

    return tf;
}

我的小组是决赛所以我不知道这是否与它有关。gui上有多个面板。

我基本上要做的是在用户在 JTextField 中输入名称时启用保存按钮,当他们删除名称时,我将禁用保存按钮。\

想法?

4

2 回答 2

1

鉴于您的代码,没有理由这不应该工作。您的记录器的跟踪级别很可能设置为更高级别(例如ERROR),以防止出现任何输出。确保跟踪级别至少设置为INFO

于 2013-10-30T15:49:19.003 回答
1

如果

LOGGER.info("listener constructor"); 

未显示,这向我表明您的日志记录未正确设置以输出信息级消息。我用 System.out.println() 代替 LOGGER.info 尝试了您的代码,它按预期工作。

于 2013-10-30T15:49:48.333 回答