繁体   English   中英

如何在DefaultMutableTreeNode上获取鼠标侦听器?

[英]How do I get a mouse listener on a DefaultMutableTreeNode?

我知道我可以在Jtree中添加mouseListener,但是我需要双击他的元素之一和doSomething();。

JTree文档中

如果您有兴趣检测双击事件或用户单击节点时,无论是否选择了该节点,我们建议您执行以下操作:

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);

检查一下:

  public class NetworkTree extends JPanel implements TreeSelectionListener {
  private JTree tree;
  private static int PANEL_WIDTH=250;
  private static int PANEL_HEIGHT=500;
private static String lineStyle = "Horizontal";

public NetworkTree() {
DefaultMutableTreeNode top = new DefaultMutableTreeNode(new Site(
                1,1,"Network","",3));
getSubNodes(top,0);
tree = new JTree(top);
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
tree.addTreeSelectionListener(this);
JScrollPane treeView = new JScrollPane(tree);
add(treeView);

tree.addMouseListener(new MouseAdapter() {
  public void mouseClicked(MouseEvent me) {
    newNodeSelected();
  }
});
 }
.....
    public void newNodeSelected() {
   JOptionPane.showMessageDialog(null,"Hello");
}

.....}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM