[英]how would you detect if the mouse cursor is inside a JFrame in java?
你會如何編寫一個方法來檢測鼠標光標是否在java中的JFrame中? 如果它在內部,則該方法應返回true,否則返回false。
謝謝,安德魯
假設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);
}
你應該添加一個鼠標監聽器並對mouseEntered-Event作出反應:
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類來獲取鼠標的當前位置。 然后,將此位置與框架上的邊界進行比較,以返回適當的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.