0

キーリスナーを追加する必要TitelAreaDialogがありますこれを行うための解決策はありますか?

4

1 に答える 1

6

次を使用してListenerにを追加できます。Display

Listener listener = new Listener() {
    public void handleEvent(Event event) {
        System.out.println(event.character);
    }
}
getShell().getDisplay().addFilter(SWT.KeyDown, listener);

これにより、イベントを消費することなく、押されたすべてのキーが出力されます。つまり、基礎となるウィジェットは引き続きイベントを登録します。


close()のメソッドで再度削除することを忘れないでくださいDialog:

@Override
public boolean close()
{
    getShell().getDisplay().removeFilter(SWT.KeyDown, listener);
    super.close();
}
于 2012-10-05T19:06:55.997 に答える