如何双击JTree节点并获取其名称?
如果我调用evt.getSource()
,则似乎返回的对象是JTree。我无法将其强制转换为DefaultMutableTreeNode。
最佳答案
final JTree tree = ...;
MouseListener ml = new MouseAdapter() {
public void mousePressed(MouseEvent e) {
int selRow = tree.getRowForLocation(e.getX(), e.getY());
TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
if(selRow != -1) {
if(e.getClickCount() == 1) {
mySingleClick(selRow, selPath);
}
else if(e.getClickCount() == 2) {
myDoubleClick(selRow, selPath);
}
}
}
};
tree.addMouseListener(ml);
要从
TreePath
获取节点,可以走路径,或者简单地使用 TreePath#getLastPathComponent
。这将返回
Object
,因此您将需要自己强制转换回所需的节点类型。