2010-04-25 4 views
5

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

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

1) Добавить событие мыши для всех compoenents рекурсивных

2) использовать прозрачный glasspane

поддержки

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

спасибо

+0

любая помощь пожалуйста :-) – shay

+0

Может ли класс java.awt.Robot помочь вам? –

+0

Я так и не подумал об этом, это круто, чтобы подумать об этом :) позвольте мне проверить :) – shay

ответ

2

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

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

спасибо ALLL

8

Вы пробовали 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); 
1

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

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

Некоторые пояснения для параметров: X Мышь X в переместить Y Мышь Y для перемещения A - это компонент
Надеюсь, я был полезен людям с тем же вопросом.