我现在倒可以得到treenode的y坐标,x坐标我通过treenode.getPath().length*30得到,很明显这样得到x坐标不太好,因此请教x坐标怎么得到。谢谢!
5 个解决方案
#1
我不清楚你是怎么处理弹出菜单的,我一般是把弹出事件写在mouseReleased( MouseEvent e )里面,用的mouse的位置定位菜单,比方说
public void mouseReleased( MouseEvent e ) {
if ( e.isPopupTrigger()) {
popupMenu.show((JComponent)e.getSource(),
e.getX(), e.getY() );
}
}
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)
if (tree.getRowForLocation(e.getX(), e.getY()) > -1)
#4
我现在就是这样做的,但是这样弹出菜单的位置就是变动的
#5
我知道怎么办了!
jTree1.getPathBounds(treepath)可以得到treenode的位置
jTree1.getPathBounds(treepath)可以得到treenode的位置
#1
我不清楚你是怎么处理弹出菜单的,我一般是把弹出事件写在mouseReleased( MouseEvent e )里面,用的mouse的位置定位菜单,比方说
public void mouseReleased( MouseEvent e ) {
if ( e.isPopupTrigger()) {
popupMenu.show((JComponent)e.getSource(),
e.getX(), e.getY() );
}
}
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)
if (tree.getRowForLocation(e.getX(), e.getY()) > -1)
#4
我现在就是这样做的,但是这样弹出菜单的位置就是变动的
#5
我知道怎么办了!
jTree1.getPathBounds(treepath)可以得到treenode的位置
jTree1.getPathBounds(treepath)可以得到treenode的位置