ComboBox选择未重置为javafx 2.2中下拉列表(项目)的顶部

时间:2012-10-30 00:55:37

标签: combobox javafx

我有一个Source ComboBox来填充第一页中显示的源字段(25-30项)

“A”

“B”

...

“Z”

我从ComboBox中选择了最后一项,如下所示

“Z”

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

//源列表中的第一个值是空格 - “”

                    sourceComboBox.setValue("");

即使你使用下面的代码片段,如

                    sourceComboBox.getSelectionModel().selectFirst(); 
                    sourceComboBox.getItems().clear();
                    sourceComboBox.getSelectionModel().clearAndSelect(0);

但是当我点击打开组合框下拉列表时,它仍会显示从底部显示的下拉列表,如下所示

...

“X”

“Y”

“Z”

我无法发布用于表示组合框值的图像,因此已在上面的示例中进行了说明。

这看起来像是一个图形错误或我做错了什么? 我已经在下面的问题中看到了类似的问题但到目前为止还没有找到解决方法 Combobox clearing value issue

5 个答案:

答案 0 :(得分:1)

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

sourceComboBox.setValue(null);

答案 1 :(得分:0)

ComboBox控件没有类似scrollTo(index) ListView的方法。所以似乎很难解决这种行为。您可以在JavaFX Jira发出功能请求。

答案 2 :(得分:0)

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

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);

您还需要在ComboBox上再次执行setItems(),以便填充新的。这不是一个理想的解决方案,但它似乎正在工作,因为我期望提供clearSelection()方法。

答案 3 :(得分:0)

以下是您要查找的代码。它会将其重置为括号内的任何索引。

sourceComboBox.setSelectedIndex(0);

古德勒克

答案 4 :(得分:0)

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

comboBox.getSelectionModel.clearSelection();

这实际上将您的ComboBox的值设置为null。因此,如果你在另一个地方引用ComboBox的值,那么使用这个来检查ComboBox的值是否为空变得很重要

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