Сегодня нашел новый (для меня, разумеется) баг в Swing. Проблема заключается в том, что если на панели есть JTabbedPane, а в ней лежит компонент, который должен получить фокус после того, как происходит переключение на соответствующий таб, то фокус этот он не получит.
Вот неработающий код:
tabPane.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
txtName.requestFocusInWindow();
}
});
Баг #5089436 (а ему уже около 5 лет) предлагает воркэраунд, связанный с обрамлением вызова requestFocusInWindow()
в invokeLater()
:
tabPane.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
EventQueue.invokeLater(new Runnable() {
public void run() {
txtName.requestFocusInWindow();
});
}
});
А в остальном Свинг по-прежнему хорош.
0 коммент. | добавить комментарий :: JTabbedPane и фокус в ней
Отправить комментарий