在java中,如何检测鼠标光标是否位于JFrame内?
在java中,如何编写一个方法来检测鼠标光标是否位于JFrame中?如果该方法在内部,则应返回true,否则返回false在java中,如何检测鼠标光标是否位于JFrame内?,java,swing,jframe,Java,Swing,Jframe,在java中,如何编写一个方法来检测鼠标光标是否位于JFrame中?如果该方法在内部,则应返回true,否则返回false 谢谢,Andrew您应该添加一个鼠标侦听器,并对鼠标插入事件做出反应: JFrame.addMouseListener( new MouseAdapter() { public void mouseEntered( MouseEvent e ) { // your code here } } ); 将鼠标侦听器添加到JFrame,并查找mo
谢谢,Andrew您应该添加一个鼠标侦听器,并对鼠标插入事件做出反应:
JFrame.addMouseListener( new MouseAdapter() {
public void mouseEntered( MouseEvent e ) {
// your code here
}
} );
将鼠标侦听器添加到JFrame,并查找mouseEntered和mouseExited事件
frame.addMouseListener(new MouseListener() {
public void mouseEntered(java.awt.event.MouseEvent evt) {
// do your action here
}
public void mouseExited(java.awt.event.MouseEvent evt) {
// do your action here
}
});
要展开原始帖子中的注释,可以使用MouseInfo类获取鼠标的当前位置。然后将此位置与帧上的边界进行比较,以返回适当的值。假设
mouseEntered
和mouseExited
事件是不够的(我就是这样,因为当鼠标光标在面板中输入按钮边界时,我希望避免额外调用mouseExited
),我在我的mouseEntered
和mouseExited
事件处理程序的开头添加了这个简短的检查:
public static boolean isMouseWithinComponent(Component c)
{
Point mousePos = MouseInfo.getPointerInfo().getLocation();
Rectangle bounds = c.getBounds();
bounds.setLocation(c.getLocationOnScreen());
return bounds.contains(mousePos);
}
哪一部分你不明白?获取JFrame位置、尺寸、获取当前鼠标位置或将其与JFrame尺寸进行比较?是否有一种方法可以在不获取鼠标坐标和测试鼠标是否在JFrame尺寸范围内的情况下执行此操作?如何处理悬停事件或类似事件?如果其他组件具有鼠标侦听器,则不起作用,因为一旦鼠标移动到其他组件上,就会生成mouseExited()事件。