我有一个实现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中输入名称时,启用“保存”按钮,当他们删除该名称时,我将禁用“保存”按钮。 \

有什么想法吗?

最佳答案

如果

LOGGER.info("listener constructor");


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

10-07 15:23