你如何检测鼠标光标是否在java中的JFrame中?

时间:2009-12-20 20:21:47

标签: java swing jframe

你如何编写一个方法来检测鼠标光标是否在java中的JFrame中?如果它在内部,则该方法应该返回true,否则返回false。

谢谢,安德鲁

4 个答案:

答案 0 :(得分:2)

假设mouseEnteredmouseExited事件不够(我就是这种情况,因为当鼠标光标进入按钮的界限时我想避免额外调用mouseExited一个小组),我想出了这个简短的检查,以添加到我的mouseEnteredmouseExited事件处理程序的开头:

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类获取鼠标的当前位置。然后,将此位置与帧上的边界进行比较,以返回适当的值。