JavaFX:如何管理边框中的焦点遍历

Posted

技术标签:

【中文标题】JavaFX:如何管理边框中的焦点遍历【英文标题】:JavaFX: How to manage the focus traversal in a borderpane 【发布时间】:2014-10-04 23:02:10 【问题描述】:

我想知道是否可以使用 TAB 或 Shift+TAB 在 Borderpane 元素的不同部分中导航?

【问题讨论】:

parts of BorderPane 是什么意思? 抱歉,我想说的是 BorderPane 的子项(上、左、中、右和下)。 好吧,您可以在同一Layout 中的Controls 之间切换。如果您在Borderpane 的中心有一个gridpane,它有4 个文本字段和一个按钮,您可以使用TAB 在它们之间切换Focus 【参考方案1】:

您可以尝试以下方法:

borderPane.getTop().addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() 
    @Override
    public void handle(javafx.scene.input.KeyEvent event) 
        if (event.getCode() == KeyCode.TAB) 
            borderPane.getLeft().requestFocus();
        
    
);

【讨论】:

谢谢!经过分析,BorderPane 正确管理了 TAB 和 SHIFT+TAB。但是,当以前的控件是 TabPane 时,我遇到了问题。无法将焦点移到 TabPane 之外的上一个可聚焦控件。我必须实施一种解决方法,将焦点移回上一个控件。 在 TabPane 内移动焦点已使用 8u20 版本正确处理。

以上是关于JavaFX:如何管理边框中的焦点遍历的主要内容,如果未能解决你的问题,请参考以下文章

如何使用CSS来设置两个相邻TableView的边框样式,使它们看起来像是JavaFX 11中的单个TableView(OpenJFX 11)

JavaFX中的可复制Label / TextField / LabeledText

动态访问/遍历/操作从控制器类外部的 FXML 创建的 JavaFX 节点

有没有办法改变TableView的焦点可遍历行为?

Javafx 。如何获得下一个元素非焦点丢失

table里面放input去掉线