我想在右键单击treenode时,弹出popupmenu,但是现在是可以弹出,但我不能将popupmenu定位在treenode处,要得到treenode的坐标,然后才能定位弹出菜单,但现在treenode的坐标我不知道怎么得到。
我现在倒可以得到treenode的y坐标,x坐标我通过treenode.getPath().length*30得到,很明显这样得到x坐标不太好,因此请教x坐标怎么得到。谢谢!

解决方案 »

  1.   

    我不清楚你是怎么处理弹出菜单的,我一般是把弹出事件写在mouseReleased( MouseEvent e )里面,用的mouse的位置定位菜单,比方说public void mouseReleased( MouseEvent e ) {
        if ( e.isPopupTrigger()) {
            popupMenu.show((JComponent)e.getSource(), 
                       e.getX(), e.getY() );
        }
    }
      

  2.   

    是啊,但是这样弹出菜单的位置就以鼠标位置确定,我是想让弹出菜单在treenode附近弹出,这样就需要知道treenode的坐标
      

  3.   

    那就先判断一下是不是在树节点上:if (tree.getRowForLocation(e.getX(), e.getY()) > -1)
      

  4.   

    我知道怎么办了!
    jTree1.getPathBounds(treepath)可以得到treenode的位置