当JTree
设置为可编辑时,我想在用户编辑DefaultMutableTreeNode
时监听文本更改。就像,我想显示用户在节点中输入的内容的状态标签。
不幸的是,我没有找到用于 DefaultMutableTreeNode
的 DocumentListener
来监听 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/