在java中在上下文的坐标系统什么意思

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/06 02:05:56
在java中在上下文的坐标系统什么意思在java中在上下文的坐标系统什么意思在java中在上下文的坐标系统什么意思计算机屏幕拥有坐标系统,它被用来定义窗口的位置和尺寸.同样,Java中的可视化组件都有

在java中在上下文的坐标系统什么意思
在java中在上下文的坐标系统什么意思

在java中在上下文的坐标系统什么意思
计算机屏幕拥有坐标系统,它被用来定义窗口的位置和尺寸.同样,Java中的可视化组件都有自己的一个坐标系,即以组件的左上角为原点,向下和向右分别为Y轴和X轴的正方向.我们可以将一个点求出其在不同坐标系下的值.通过下面的方法即可达到:SwingUtilities.convertPoint方法.在Component类中还有一个方法:contains
public boolean contains(Point p)
检查组件是否“包含”指定的点,其中该点的 x 和 y 坐标是相对于此组件的坐标系定义的值得注意的是所制定包含的点是相对于该组件的坐标系中定义的点.假若一个JButton是位于JFrame中,视觉上在JButton中的一个点,但是其值是相对于JFrame坐标系的,因此在数值上若将该点放到JButton坐标系中,则他可能不位于JButton中了.
右键菜单JPopupMenu使用要领:
首先定义一个JPopupMenu对象pop,然后添加需要的JMenuItem到pop中.
isPopupTrigger
public boolean isPopupTrigger(MouseEvent e)
如果 JPopupMenu 的当前安装 UI 将 MouseEvent 视为弹出菜单触发器,则返回 true.
返回: 如果鼠标事件为弹出菜单触发器,则返回 true
show
public void show(Component invoker, int x, int y)
在组件调用者的坐标空间中的位置 X、Y 显示弹出菜单.
参数: invoker - 弹出菜单在其空间中显示的组件 x - 用于显示弹出菜单的调用者的坐标空间中的 X 坐标 y - 用于显示弹出菜单的调用者的坐标空间中的 Y 坐标
需要注意的是:哪个组件添加了该JPopupMenu,该pop就在哪个组件的坐标系中的范围上显示.假如你在一个JButton上添加了pop那么若pop比JButton要大的话,pop的一些菜单项可能显示不出来.一般我们将pop会添加到顶层的容器中.若要右键其中的组件就弹出菜单时,则可以采用上面所说的方法:在组件中添加一个鼠标监听器,一般右键菜单是右键释放的时候触发,因此在mouseReleased方法中添加处理事件的程序.首先得到在组件坐标系下的鼠标点击的坐标点,再求出该坐标值在容器坐标系下对应的坐标点.并在容器中的该位置显示右键菜单即可