2010-04-25 9 views
5

Est-il possible d'envoyer MouseEvent, même que dispatchKeyEvent utilisant le KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(listener); qui se produit avant l'événement transféré au composant?Dispatch MouseEvent

Je sais que j'ai 2 options

1) Ajouter un événement de la souris à tous compoenents récursives

2) Utilisez un GlassPane transparent

Est-ce que de support Java cela, ou dois-je utiliser une des options ci-dessus?

merci

+0

toute aide s'il vous plaît :-) – shay

+0

La classe java.awt.Robot peut-elle vous aider? –

+0

je ne suis pas venu à penser à cela, c'est vraiment cool venu à y penser :) laissez-moi vérifier :) – shay

Répondre

2

ce que je l'ai fait finalement été

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

merci ALLL

8

Avez-vous essayé 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

Je l'ai finalement utilisé ceci:

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

Quelques explications pour params: X Souris X déplacer Y Souris Y pour se déplacer A est le composant
J'espère avoir été utile pour les personnes ayant la même question.