0

Linux と Windows の両方で実行する必要がある Java SWT プログラムを作成しています。

次のコードを使用して KeyUp イベントをリッスンします。

Control.addListener(SWT.KeyUp, new Listener() {

public void handleEvent(Event arg0) {
 System.out.println("Event");

}

});

ただし、コントロールにフォーカスがない場合、これはトリガーされません。

キャッチオールとして機能するリスナーを追加できる場所を知っている人はいますか?

4

3 に答える 3

1

私が知っているこれを行う唯一の方法は、ディスプレイにフィルターを配置することです。1つのディスプレイで複数のシェルが動作する可能性があることに注意してください。注意が必要です。

shell.getDisplay().addFilter(SWT.KeyDown, new Listener() {
    public void handleEvent(final Event event) {
        System.out.println(event);
    }
});
于 2010-07-23T12:13:54.613 に答える
0

Displayクラスで次のメソッドを試してください。

public void addListener ( int eventType, Listener listener ) 
于 2010-03-23T10:55:45.090 に答える
-1

これに対する解決策を見つけることができませんでした。私は何も存在しないと思う

于 2010-04-14T12:12:27.833 に答える