你按照下面的改写一下内部类:MouseListener ml = new MouseAdapter() {
   
    public void mouseReleased(MouseEvent e) {
        if (javax.swing.SwingUtilities.isRightMouseButton(e)) {
            popupMenu1.add(menu1);
            menu1.add(menuItem1);
            menu1.add(menuItem3);
            menu1.add(menuItem4);
            contentPane.add(popupMenu1);
            popupMenu1.show(tree, e.getX(), e.getY());         }    }
 };

解决方案 »

  1.   

    if (javax.swing.SwingUtilities.isRightMouseButton(e)){
          popupMenu1.add(menu1);
        menu1.add(menuItem1);
        menu1.add(menuItem3);
       menu1.add(menuItem4);
        tree.add(popupMenu1);
       popupMenu1.show(tree,e.getX(),e.getY());/*问题就在这*/
       }我给你试了,如上
      

  2.   

    if (javax.swing.SwingUtilities.isRightMouseButton(e)){
          popupMenu1.add(menu1);
        menu1.add(menuItem1);
        menu1.add(menuItem3);
       menu1.add(menuItem4);
        tree.add(popupMenu1);
       popupMenu1.show(tree,e.getX(),e.getY());/*问题就在这*/
       }我给你试了,如上
      

  3.   

    just try:Point p=e.getPoint();
    SwingUtilities.convertPointToScreen(p,tree);
    popupMenu1.show(tree, p.x, p.y);
      

  4.   

    看看你的代码,问题在这:(开始被你误导了,呵呵:)MouseListener ml = new MouseAdapter() {
       public void mouseClicked(MouseEvent e) {
       Frame6 mytree=new Frame6();//问题所在,去掉这句话,然后调整一下
       JPopupMenu popup=null;
       int selRow = tree.getRowForLocation(e.getX(), e.getY());
           TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
           if(selRow != -1) {
               if(e.getClickCount() == 1) {
                  mytree.mySingleClick(e);//直接用mySingleClick(e);
               }
               ......
      

  5.   

    不会吧?我都通过了啊。
    去掉mySingleClick()方法,把内部类改成我那样写的。