マウスカーソルが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);
}
元の投稿のコメントを拡張するには、MouseInfo クラスを使用してマウスの現在の位置を取得できます。次に、この位置をフレームの境界と比較して、適切な値を返します。
マウス リスナーを追加し、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
}
});