你如何编写一个方法来检测鼠标光标是否在java中的JFrame中?如果它在内部,则该方法应该返回true,否则返回false。
谢谢,安德鲁
答案 0 :(得分:2)
假设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);
}
答案 1 :(得分:1)
你应该添加一个鼠标监听器并对mouseEntered-Event:
作出反应JFrame.addMouseListener( new MouseAdapter() {
public void mouseEntered( MouseEvent e ) {
// your code here
}
} );
答案 2 :(得分:1)
为您的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
}
});
答案 3 :(得分:1)
要展开原始发布中的评论,您可以使用MouseInfo类获取鼠标的当前位置。然后,将此位置与帧上的边界进行比较,以返回适当的值。