发送MouseEvent

sha*_*hay 6 java swing mouseevent dispatchevent

有没有办法分派MouseEvent,就像dispatchKeyEvent使用 KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(listener); 事件转移到组件之前发生的那样?

我知道我有两个选择

1)将鼠标事件添加到递归的所有组件中

2)使用透明玻璃板

Java支持这个,还是我必须使用上面的选项之一?

谢谢

she*_*non 9

你试过java.awt.Component.dispatchEvent(AWTEvent)吗?

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

JButton jb = new JButton("Press!");
MouseEvent me = new MouseEvent(jb, // which
    MouseEvent.MOUSE_CLICKED, // what
    System.currentTimeMillis(), // when
    0, // no modifiers
    10, 10, // where: at (10, 10}
    1, // only 1 click 
    false); // not a popup trigger

jb.dispatchEvent(me);
Run Code Online (Sandbox Code Playgroud)


sha*_*hay 3

我最后做的是

long  eventMask = AWTEvent.MOUSE_MOTION_EVENT_MASK
         + AWTEvent.MOUSE_EVENT_MASK;
Toolkit.getDefaultToolkit().addAWTEventListener(
         new MouseListener(){....}, eventMask);
Run Code Online (Sandbox Code Playgroud)

谢谢大家