, что я пытаюсь заархивировать здесь, это пройти внутри элементов управления с помощью клавиш со стрелками ВВЕРХ и ВНИЗ, код выглядит примерно так в экранном объекте.Может показаться странным, но это требование: - /
displayObj.addFilter(SWT.KeyDown,new Listener() {
public void handleEvent(Event event) {
Control ctrl= (Control) event.widget;
if(event.keyCode==SWT.ARROW_UP) {
ctrl.traverse(SWT.TRAVERSE_TAB_PREVIOUS);
} else if(event.keyCode==SWT.ARROW_DOWN) {
ctrl.traverse(SWT.TRAVERSE_TAB_NEXT);
}
}
});
это прекрасно работает для текстов и полей со списком.Но третье поле - это кнопка (compositeObj,SWT.CHECK
), в этот момент это не работает, потому что генерируется событие SWT.FocusOut
, и фокус перемещается к следующей кнопке «ОК» «Отмена» вместо выпадающего списка сразу после него.,Обход вкладок происходит правильно в правильном порядке, как в тексте, тексте, кнопке, комбо, кнопке и кнопке.Невозможно использовать FocusListener
, потому что нет способа отдельно обрабатывать события стрелок ВВЕРХ и ВНИЗ.
Есть ли другие способы сделать это ?.Заранее спасибо за любые ответы.