我有一个JTree,并希望getTreeCellEditorComponent()在我单击一个节点时调用它的方法.根据DefaultTreeCellEditor课程的文档(我扩展),"编辑是在三次鼠标点击,或点击,暂停,点击和1200毫秒的延迟后开始的." 有没有办法覆盖此行为,以便单击可以启动编辑过程?
该JTreeAPI建议使用MouseListener,但一个关键的绑定也很方便.此示例调用startEditingAtPath()并绑定到Enter键:
final JTree tree = new JTree();
tree.setEditable(true);
MouseListener ml = new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
int row = tree.getRowForLocation(e.getX(), e.getY());
TreePath path = tree.getPathForLocation(e.getX(), e.getY());
if (row != -1) {
if (e.getClickCount() == 1) {
tree.startEditingAtPath(path);
}
}
}
};
tree.addMouseListener(ml);
tree.getInputMap().put(
KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "startEditing");
Run Code Online (Sandbox Code Playgroud)
附录:另请参阅有关可用性的答案.
| 归档时间: |
|
| 查看次数: |
4999 次 |
| 最近记录: |