6

イベントがコンポーネントに転送される前に発生するを使用するの MouseEventと同じように、ディスパッチする方法はありますか?dispatchKeyEventKeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(listener);

私には2つの選択肢があることを知っています

1)再帰的なすべてのコンポーネントにマウスイベントを追加します

2)透明なガラス板を使用する

Javaはこれをサポートしていますか、それとも上記のオプションの1つを使用する必要がありますか?

ありがとうございました

4

3 に答える 3

9

試しました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);
于 2010-05-16T02:57:39.913 に答える
3

私が最終的にやったことは

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

ありがとうございます

于 2010-05-20T10:38:38.953 に答える
1

私は最終的にこれを使用しました:

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

パラメータの説明: X Mouse X to move Y Mouse Y to move A は
、同じ質問を持つ人々の役に立てば幸いです。

于 2012-02-08T15:34:16.183 に答える