1

在 JavaFX 应用程序中,我在屏幕上有两个文本框和三个选择框。它们都以垂直方式放置。

当焦点到达第一个选择框时通过键盘 TAB 导航时,如果我单击键盘向下箭头,则焦点不会打开该选择框的项目,而是移动到下一个选择框并显示其中的项目。

我试图通过在第一个选择框上创建一个按键事件方法来手动覆盖它,仍然是焦点,移动到下一个选择框。

有什么解决办法吗?

4

1 回答 1

1

将事件过滤器放在包含这些控件的父组件中。

/**
* 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();
        }
    }
});
于 2012-10-23T11:39:02.897 回答