Combobox 组合框选择未重置为JavaFX2.2中下拉列表(项)的顶部

Combobox 组合框选择未重置为JavaFX2.2中下拉列表(项)的顶部,combobox,javafx,Combobox,Javafx,我有一个源组合框来填充源字段(25-30项),如下面第一页所示 “A” “B” “Z” 我已经从组合框中选择了最后一项,如下所示 “Z” 当保存后进入下一页时,我需要将源组合选择设置为空,因此我返回以下代码以重置源组合框以指向第一项(重置显示以从用户选择的下拉列表顶部开始) //源列表中的第一个值为空空间-“” sourceComboBox.setValue(""); 即使您使用以下代码段,如 sourceCom

我有一个源组合框来填充源字段(25-30项),如下面第一页所示

“A”

“B”

“Z”

我已经从组合框中选择了最后一项,如下所示

“Z”

当保存后进入下一页时,我需要将源组合选择设置为空,因此我返回以下代码以重置源组合框以指向第一项(重置显示以从用户选择的下拉列表顶部开始)

//源列表中的第一个值为空空间-“”

                    sourceComboBox.setValue("");
即使您使用以下代码段,如

                    sourceComboBox.getSelectionModel().selectFirst(); 
                    sourceComboBox.getItems().clear();
                    sourceComboBox.getSelectionModel().clearAndSelect(0);
但当我点击打开组合框下拉列表时,它仍然显示底部的下拉显示,如下所示

“X”

“Y”

“Z”

我无法发布用于表示组合框值的图像,因此我在上面的示例中添加了这些图像

这看起来像是一个图形错误,还是我做错了什么? 我在下面的问题中看到过类似的问题,但到目前为止还没有提出解决办法
组合框控件没有类似于
列表视图的
滚动(索引)
的方法。因此,似乎很难改变这种行为。您可以在JavaFX Jira上发出功能请求。

我遇到了几乎完全相同的情况,在寻找解决方案时遇到了您的问题。幸运的是,我想出了一个解决办法,强制组合框重置。重置窗格上的数据时,不要执行以下操作:

sourceComboBox.getSelectionModel().clearSelection();
sourceComboBox.getItems.clear();
像这样做

parentNode.getChildren().remove(sourceComboBox);
sourceComboBox= new ComboBox();  // do whatever else you need to format your ComboBox
parentNode.add(sourceComboBox);
您还需要在组合框上再次执行setItems(),以便填充新的组合框。这不是一个理想的解决方案,但它似乎与我所期望的clearSelection()方法一样工作。

如果您想简单地“重置”组合框,我认为您所要做的就是将值设置为
null
,如下所示:

sourceComboBox.setValue(null);

下面是您正在查找的代码。它会将其重置为括号内给定的任何索引

sourceComboBox.setSelectedIndex(0)


好运

当我尝试它们时,大多数东西都给了我一个错误。对我来说最有效的就是使用这个

comboBox.getSelectionModel.clearSelection();
这实际上会将ComboBox的值设置为null。因此,如果您在另一个位置引用ComboBox的值,那么使用此选项检查ComboBox的值是否为null就变得非常重要

if(comboBox.getValue() != null)
  //Code segment here