gpt4 book ai didi

java - JTree右键单击选择项目

转载 作者:搜寻专家 更新时间:2023-11-01 01:25:57 25 4
gpt4 key购买 nike

我知道如何通过单击鼠标左键从所选项目中获取项目。我可以使用 TreeSelectionListener

tree.addTreeSelectionListener(new TreeSelectionListener(){
@Override
public void valueChanged(TreeSelectionEvent tse) {
DefaultMutableTreeNode node =
(DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
}
});

但我需要通过鼠标右键单击项目。显示与单击的项目相关的弹出菜单。我试过这个:

private void treeClicked(java.awt.event.MouseEvent evt) {
if(SwingUtilities.isRightMouseButton(evt)){
this.listRightClickMenu.show(this,evt.getX(),evt.getY());
DefaultMutableTreeNode node =
(DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
}
}

但是如果用户用右键单击项目就会出现问题。右键单击不选择项目。如何通过事件坐标选择项目或如何解决这个问题?主要我需要获得被点击的对象,如果可能的话没有选择项目。

最佳答案

使用这个 MouseListener:

MouseListener ml = new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if(SwingUtilities.isRightMouseButton(e)){
int selRow = tree.getRowForLocation(e.getX(), e.getY());
TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
tree.setSelectionPath(selPath);
if (selRow>-1){
tree.setSelectionRow(selRow);
}
}
};
tree.addMouseListener(ml);

关于java - JTree右键单击选择项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27468337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com