在 JavaFX 应用程序中,我在屏幕上有两个文本框和三个选择框。它们都以垂直方式放置。
当焦点到达第一个选择框时通过键盘 TAB 导航时,如果我单击键盘向下箭头,则焦点不会打开该选择框的项目,而是移动到下一个选择框并显示其中的项目。
我试图通过在第一个选择框上创建一个按键事件方法来手动覆盖它,仍然是焦点,移动到下一个选择框。
有什么解决办法吗?
在 JavaFX 应用程序中,我在屏幕上有两个文本框和三个选择框。它们都以垂直方式放置。
当焦点到达第一个选择框时通过键盘 TAB 导航时,如果我单击键盘向下箭头,则焦点不会打开该选择框的项目,而是移动到下一个选择框并显示其中的项目。
我试图通过在第一个选择框上创建一个按键事件方法来手动覆盖它,仍然是焦点,移动到下一个选择框。
有什么解决办法吗?
将事件过滤器放在包含这些控件的父组件中。
/**
* prevent move focus on pressing UP/DOWN
*/
pnlRadioButton.addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
if (event.getCode() == KeyCode.UP || event.getCode() == KeyCode.DOWN) {
event.consume();
}
}
});