SWT: Как вы регистрируете события KeyUp, когда ни один элемент управления не имеет фокуса? - PullRequest
0 голосов
/ 23 марта 2010

Я создаю Java SWT-программу, которая должна работать как в Linux, так и в Windows.

Я использую следующий код для прослушивания событий KeyUp:

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

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

}

});

Но это не срабатывает, когда ни один элемент управления не имеет фокуса.

Кто-нибудь знает место, где я могу добавить слушателя, который действует как Catch-all?

Ответы [ 3 ]

1 голос
/ 23 июля 2010

Единственный способ сделать это, о котором я знаю, это поместить на дисплей фильтр . Обратите внимание, что на одном дисплее может работать несколько оболочек, поэтому будьте осторожны!

shell.getDisplay().addFilter(SWT.KeyDown, new Listener() {
    public void handleEvent(final Event event) {
        System.out.println(event);
    }
});
0 голосов
/ 14 апреля 2010

Мне не удалось найти решение этой проблемы.Я подозреваю, что ничего не существует

0 голосов
/ 23 марта 2010

попробуйте следующий метод в классе отображения:

public void addListener ( int eventType, Listener listener ) 
...