[英]DocumentListener for DefaultMutableTreeNode
I want to listen to text changes when the user is editing the DefaultMutableTreeNode
when the JTree
is set editable. 当
JTree
设置为可编辑时,当用户编辑DefaultMutableTreeNode
时,我想听文本更改。 Like, i want to display a status label of what the user is typing in the node. 就像,我想显示用户在节点中键入内容的状态标签。
Unfortunately, i didn't find a DocumentListener
for DefaultMutableTreeNode
to listen to changes like inserting, deleting and modifying text in the DefaultMutableTreeNode
. 不幸的是,我没有找到
DefaultMutableTreeNode
的DocumentListener
来监听诸如在DefaultMutableTreeNode
插入,删除和修改文本的更改。
Could any one say me how to do this? 谁能说我该怎么做? Any working answer is appreciated.
任何有效的答案表示赞赏。 Thanks in advance.
提前致谢。
Once the editor is prepared, you can add a DocumentListener
to the cell editor's editingComponent
. 准备好编辑器后,可以将
DocumentListener
添加到单元格编辑器的editingComponent
。 Starting from this example , add the following method to MyTreeCellEditor
: 从本示例开始,将以下方法添加到
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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.