2010-04-25 14 views
5

Esiste un modo per spedire MouseEvent, uguale dispatchKeyEvent utilizzando il KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(listener); che accade prima dell'evento trasferito alla componente?spedizione MouseEvent

So di avere 2 opzioni

1) Aggiungi l'evento del mouse per tutte le Compoenents ricorsive

2) Utilizzare un glasspane trasparente

supporto

fa Java questo, o devo usare quello delle opzioni sopra?

ringraziamento

+0

qualsiasi aiuto per favore :-) – shay

+0

La classe java.awt.Robot può aiutarti? –

+0

non sono venuto a pensarci, questo è fantastico, vieni a pensarci :) fammi controllare :) – shay

risposta

2

quello che ho finalmente fatto è stato

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

ringraziamento alll

8

Hai provato 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

ho finalmente usato questo:

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

Alcuni spiegazione per params: X mouse X sposta Y Mouse Y per spostarsi A è il componente
Spero di essere stato utile per le persone con la stessa domanda.

Problemi correlati