JTree 有一个getLastSelectedPathComponent() 函数,你对它进行转型,(DefaultMutableTreeNode)getLastSelectedPathComponent() ,然后判断是那个node

解决方案 »

  1.   

    addMouseListener(new MouseAdapter(){
    public void mousePressed(MouseEvent e){
      DefaultMutableTreeNode node =(DefaultMutableTreeNode)getLastSelectedPathComponent() ;
      if(node == null)return;
      if(node.isLeaf()){
        ...
      }
    }
    });
      

  2.   

    //鼠标事件处理类(Inner Class)
    class myMouseAdapter extends MouseAdapter {   public void mouseReleased(MouseEvent evt) {
          if( !evt.isPopupTrigger() ) return;
          int selRow=dbTree.getRowForLocation(evt.getX(),evt.getY());
          TreePath selPath=dbTree.getPathForLocation(evt.getX(),evt.getY());
          if (selPath!=null){
            dbTree.setSelectionPath(selPath);
       Object lastComponent = selPath.getLastPathComponent();
    if(lastComponent instanceof ServerTreeNode && spop!=null ){ //if is server node.
                 ServerTreeNode gNode = (ServerTreeNode)lastComponent;
                 if( gNode.isRunning() ){
                    helper.selectServerNode(true);
                 }
                 else {
                    helper.selectServerNode(false);
                 }
                 spop.show(evt.getComponent(),evt.getX(),evt.getY());
            }
            else if( lastComponent instanceof DatabaseTreeNode && dpop!=null ){ //if is database node.
                 dpop.show(evt.getComponent(),evt.getX(),evt.getY());
            }
            else if( lastComponent instanceof TableTreeNode && tpop!=null ){ //if is table node.
                 tpop.show(evt.getComponent(),evt.getX(),evt.getY());
            }
          }
        }
    }
    }//end Class DBTreeManager