java - DefaultMutableTreeNode 的文档监听器

标签 java swing jtextfield jtree documentlistener

JTree设置为可编辑时,我想在用户编辑DefaultMutableTreeNode时监听文本更改。就像,我想显示用户在节点中输入的内容的状态标签。

不幸的是,我没有找到用于 DefaultMutableTreeNodeDocumentListener 来监听 DefaultMutableTreeNode 中插入、删除和修改文本等更改。

有人能告诉我该怎么做吗?任何有效的答案都将受到赞赏。提前致谢。

最佳答案

编辑器准备就绪后,您可以将 DocumentListener 添加到单元格编辑器的 editingComponent 中。从这里开始example ,将以下方法添加到MyTreeCellEditor:

@Override
public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) {
    final Component c = super.getTreeCellEditorComponent(tree, value, isSelected, expanded, leaf, row);
    JTextField jtf = (JTextField) editingComponent;
    jtf.getDocument().addDocumentListener(new DocumentListener() {
        @Override
        public void insertUpdate(DocumentEvent e) {
            print(e);
        }

        @Override
        public void removeUpdate(DocumentEvent e) {
            print(e);
        }

        @Override
        public void changedUpdate(DocumentEvent e) {
            print(e);
        }
        private void print(DocumentEvent e) {
            System.out.println(e);
        }
    });
    return c;
}

关于java - DefaultMutableTreeNode 的文档监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17494613/

相关文章:

java - JTextField Keylistener 无法删除输入

java - 如何从外部 Maven 依赖项禁用 Log4j 配置?

java - 在java中使用stacks(LinkedList)实现表达式树如下,但有错误

java - DefaultMutableTreeNode-Text 太长?

java - 排序器从原始序列中获取值

java - 根据按下的按钮创建不同数量的 JTextField

Java 在 JTextField 中移动光标

java - java中的复合模式

java - 在文件上传期间显示带有百分比的水平进度条的最佳方式?

java - 设置屏幕中间2帧的位置