ComboBox selection not reset to top of dropdown list (items) in javafx 2.2
我有一个源组合框来填充第一页中显示的源字段(25-30 项)
"A"
"B"
...
"Z"
我已经从 ComboBox 中选择了最后一项,如下所示
"Z"
保存后遍历下一页时,我需要将源组合选择设为空白,因此我返回以下代码以将源组合框重置为指向第一项(将显示重置为从顶部开始供用户选择的下拉列表)
// 我在源列表中的第一个值是空格 - a€?a€?
1 | sourceComboBox.setValue(""); |
即使您使用以下代码片段,例如
1 2 3 | sourceComboBox.getSelectionModel().selectFirst(); sourceComboBox.getItems().clear(); sourceComboBox.getSelectionModel().clearAndSelect(0); |
但是当我点击打开组合框下拉菜单时,它仍然从底部显示下拉菜单,如下所示
...
"X"
"Y"
"Z"
我无法发布代表组合框值的图像,所以在上面的例子中放了。
这对我来说像是一个图形错误,还是我做错了什么?
我在下面的问题中看到了类似的问题,但到目前为止没有建议解决方法
组合框清除值问题
如果您想简单地"重置"组合框,我认为您所要做的就是将值设置为
1 | sourceComboBox.setValue(null); |
当我尝试它们时,大多数事情都给了我一个错误。最适合我的是使用这个
1 | comboBox.getSelectionModel.clearSelection(); |
这实际上会将 ComboBox 的值设置为 null。因此,如果您在其他地方引用 ComboBox 的值,则使用 this
检查 ComboBox 的值是否为 null 变得很重要
1 2 | if(comboBox.getValue() != null) //Code segment here |
以下是您要查找的代码。它会将其重置为您在括号内提供的任何索引。
祝你好运
我遇到了几乎完全相同的情况,并在寻找解决方案时遇到了您的问题。幸运的是,我想出了一个强制组合框重置的解决方法。当您重置窗格上的数据时,而不是执行以下操作:
1 2 | sourceComboBox.getSelectionModel().clearSelection(); sourceComboBox.getItems.clear(); |
做这样的事...
1 2 3 | parentNode.getChildren().remove(sourceComboBox); sourceComboBox= new ComboBox(); // do whatever else you need to format your ComboBox parentNode.add(sourceComboBox); |
您还需要在您的 ComboBox 上再次执行 setItems(),以便填充新的 ComboBox。这不是一个理想的解决方案,但它似乎可以正常工作,因为我期望提供的 clearSelection() 方法会。