当前位置: 技术问答>java相关
关于JTree右键弹出菜单的位置不与鼠标的位置一致的问题
来源: 互联网 发布时间:2015-09-12
本文导语: 现有棵JTree,比如说右三个叶子,1、2、3,当在叶子1上单击时,弹出一个弹出式菜单, 代码为popmiComm.show(this,e.getX(),e.getY()); 而位置并不在鼠标的位置上,离了一段距离,不知为何? 是不是象VC那样,需要坐标变换。cli...
现有棵JTree,比如说右三个叶子,1、2、3,当在叶子1上单击时,弹出一个弹出式菜单,
代码为popmiComm.show(this,e.getX(),e.getY());
而位置并不在鼠标的位置上,离了一段距离,不知为何?
是不是象VC那样,需要坐标变换。clientToScreen、ScreenToClient,
帮帮忙,解答之后,立即给分
代码为popmiComm.show(this,e.getX(),e.getY());
而位置并不在鼠标的位置上,离了一段距离,不知为何?
是不是象VC那样,需要坐标变换。clientToScreen、ScreenToClient,
帮帮忙,解答之后,立即给分
|
e.getX()得到的是你捕获该鼠标事件的组件中的相对的位置,而jPopupMenu的显示是一个绝对作标。这就需要把捕获鼠标事件的组件的本身位置加上去。
_________________________________________________________________
java.awt.component.getX()
getX
public int getX()
Returns the current x coordinate of the components origin. This method is preferable to writing component.getBounds().x, or component.getLocation().x because it doesn't cause any heap allocations.
Returns:
the current x coordinate of the components origin
Since:
1.2 ___________________________________________________________________
java.awt.event.MouseEvent.getX()
getX
public int getX()
Returns the horizontal x position of the event relative to the source component.
Returns:
x an integer indicating horizontal position relative to the component
_________________________________________________________________
java.awt.component.getX()
getX
public int getX()
Returns the current x coordinate of the components origin. This method is preferable to writing component.getBounds().x, or component.getLocation().x because it doesn't cause any heap allocations.
Returns:
the current x coordinate of the components origin
Since:
1.2 ___________________________________________________________________
java.awt.event.MouseEvent.getX()
getX
public int getX()
Returns the horizontal x position of the event relative to the source component.
Returns:
x an integer indicating horizontal position relative to the component
|
楼上的说法好像不对吧? :)
JPopupMenu.show()有个invoker参数 ,point是相对于它的 ,如果为null,才是绝对坐标。
popUp.show(jTree, e.getX(), e.getY());
JPopupMenu.show()有个invoker参数 ,point是相对于它的 ,如果为null,才是绝对坐标。
popUp.show(jTree, e.getX(), e.getY());
|
我也用过这个,挺好使的,你再查查this,看看API specification
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。