JavaFX无法使用的组合框 - 对DELETE键击的奇怪反应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaFX无法使用的组合框 - 对DELETE键击的奇怪反应相关的知识,希望对你有一定的参考价值。

前言

我有不可编辑的组合框(用户可以从列表中选择,但不能输入)。我想,当用户专注于它并按下DELETE时,必须清除它的选择?它似乎是(截图是在我选择一些值然后按下DELETE时制作的):selectionModel is null - screenshot

问题

但UI控件仍然显示旧值,它没有被清除。此外,还没有触发ValueChanged侦听器。

怎么造成

创建ComboBox并用一些值填充它。选择任何值。你已经选择了它,但这还不够 - 现在DELETE按下甚至不会清除selectionModel。与TAB选择相同。双击(展开和折叠)选择它,然后按DELETE。现在必须清除selectionModel,但UI仍然显示您的值。

另一件事:如果你关闭了ComboBox,按下DELETE将触发ValueChanged监听器。在展开的ComboBox上按DELETE将不会触发它,但值仍将为null。

有人面对这个吗?任何让它自然工作的想法,即清晰的selectionModel和更新UI?

答案

好吧,问题并不在我想的地方。 “删除”按钮在任何情况下都没有做任何事情,ComboBox被清除,因为它的项目列表每次扩展时都会刷新 - >旧项目被删除包括选中。问题是一样的 - 用户界面没有更新。所以我通过在ComboBox.getEditor().clear()事件中刷新它的项目列表之前添加onShowing来解决这个问题。

以上是关于JavaFX无法使用的组合框 - 对DELETE键击的奇怪反应的主要内容,如果未能解决你的问题,请参考以下文章

javafx KeyEvent触发两次

JavaFX:使用对象属性的组合框

组合框依赖于另一个组合框 - JavaFX

JavaFX:以编程方式展开组合框

组合框占位符 NullPointerException JavaFX

组合框奇怪的行为(JavaFX 8)