2010-04-25 17 views
5

¿Hay una manera de enviar MouseEvent, mismo que dispatchKeyEvent utilizando el KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(listener); que ocurre antes del evento transferido al componente?Despacho MouseEvent

sé que tengo 2 opciones

1) Añadir evento de ratón a todos los Compoenents recursivas

2) el uso de un GlassPane transparente

apoyo

¿El Java esto, o tengo que usar el que de las opciones de arriba?

agradecimiento

+0

ayuda por favor :-) – shay

+0

¿Puede ayudarlo la clase java.awt.Robot? –

+0

no llegué a pensar en eso, esto es totalmente genial, vamos a pensarlo :) déjame ver :) – shay

Respuesta

2

lo que finalmente hice fue

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

agradecimiento felizmente

8

¿Ha intentado 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

He usado este fin:

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

Algunos explicación para params: X X para ratón mover Y Mouse Y para mover A es el componente
Espero haber sido útil para personas con la misma pregunta.

Cuestiones relacionadas