我在JFrame中添加了一个MouseMotionListener来控制从我的jframe中的所有对象到达的所有鼠标动作消息,但当我将鼠标移到JLayeredPane上时,不会产生任何消息。请帮我在我的JFrame中添加一个中心MouseMotionListener来控制其中所有对象的所有消息。
非常感谢。答案 0 :(得分:3)
下面是递归地将MouseMotionListener添加到所有组件的代码。请注意,为了处理生成的MouseEvents,您需要使用SwingUtilities将Point从特定Component的空间转换为JFrame的空间。
@if (session('user_id'))
<input type="hidden" name="user_id" value="{{ session('user_id') }}">
@endif
答案 1 :(得分:2)
您可能希望使用AWTEventListener来侦听所有AWT消息。
以下代码显示了如何监听鼠标和键事件:
long eventMask = AWTEvent.MOUSE_MOTION_EVENT_MASK
+ AWTEvent.MOUSE_EVENT_MASK
+ AWTEvent.KEY_EVENT_MASK;
Toolkit.getDefaultToolkit().addAWTEventListener( new AWTEventListener()
{
public void eventDispatched(AWTEvent e)
{
System.out.println(e.getID());
}
}, eventMask);
有关详细信息,请参阅Global Event Listeners。