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

Posted

技术标签:

【中文标题】Javafx 。如何获得下一个元素非焦点丢失【英文标题】:Javafx . How to get next Element non Focus Lost 【发布时间】:2018-02-25 10:01:47 【问题描述】:

我在 TextField 上有一个焦点侦听器,想知道下一个获得焦点的元素将是哪个元素。 (特殊情况下可能会改)

有什么想法吗?

class Data extends TextField 
    public Data(int i) 
        focusedProperty().addListener((o, ov, nv) -> 
            if(!nv)               
              // Get Next Focusserd Item ...
             
        );
    

【问题讨论】:

然后,接下来你想做什么?监听 scene.focusOwner 的变化——这就是下一个将被聚焦的时候。顺便说一句,如果您可以通过配置实现目标,不要子类控件(或任何其他类) 【参考方案1】:

从场景中获取focusOwner属性的值。

Node focusOwner = getScene().getFocusOwner();

requestFocus 可用于将焦点转移到其他节点,例如

if (focusOwner != otherNode) 
    thirdNode.requestFocus();

【讨论】:

hmm ...不要认为这就是OP想要的-我认为它类似于focusOwner.focusNext(不可用,因为focusTraversal没有进入公共范围)..或者也许不,重新阅读问题;)

以上是关于Javafx 。如何获得下一个元素非焦点丢失的主要内容,如果未能解决你的问题,请参考以下文章

如何控制哪个等待线程获得下一个锁?

理解javascript中的焦点管理

打开菜单时,JavaFX 焦点在 TextField 上的变化

javafx的选中控件焦点问题

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

python下用selenium的webdriver包如何在执行完点击下一页后获得下一页新打开页面的html源代码呢?