Отправка MouseEvent - PullRequest
       24

Отправка MouseEvent

6 голосов
/ 25 апреля 2010

Есть ли способ отправить MouseEvent, такой же, как dispatchKeyEvent, используя KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(listener); что происходит до того, как событие передано компоненту?

Я знаю, у меня есть 2 варианта

1) добавить событие мыши ко всем компонентам рекурсивно

2) используйте прозрачное стекло

Поддерживает ли Java это или мне нужно использовать один из вариантов выше?

спасибо

Ответы [ 3 ]

9 голосов
/ 16 мая 2010

Вы пробовали 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);
2 голосов
/ 20 мая 2010

что я наконец-то сделал

long  eventMask = AWTEvent.MOUSE_MOTION_EVENT_MASK
         + AWTEvent.MOUSE_EVENT_MASK;
Toolkit.getDefaultToolkit().addAWTEventListener(
         new MouseListener(){....}, eventMask);

спасибо всем

1 голос
/ 08 февраля 2012

Я наконец-то использовал это:

        a.dispatchEvent(new MouseEvent(a,
                               MouseEvent.MOUSE_MOVED,
                               System.currentTimeMillis() + 10,
                               MouseEvent.NOBUTTON,
                              x,y,
                               0,
                               false));

Некоторые пояснения к парамам: X мышь X для перемещения Y Mouse Y для перемещения А является компонентом
Надеюсь, я помог людям с таким же вопросом.

...