2

我有一个 Source ComboBox 来填充源字段(25-30 项),如下所示

“一个”

“乙”

...

“Z”

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

“Z”

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

// 我在源列表中的第一个值是空格 - “”</p>

                    sourceComboBox.setValue("");

即使您使用以下代码片段,例如

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

但是当我单击打开组合框下拉菜单时,它仍然从底部显示下拉菜单,如下所示

...

“X”

“是”

“Z”

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

这对我来说看起来像是一个图形错误,还是我做错了什么?我在下面的问题中看到了类似的问题,但到目前为止没有建议解决 Combobox 清除值问题

4

5 回答 5

1

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

sourceComboBox.setValue(null);
于 2014-01-29T04:29:15.103 回答
0

Below is the code you're looking for. It will reset it to whatever index you give in within the parenthesis.

sourceComboBox.setSelectedIndex(0);

Goodluck

于 2014-06-22T16:43:21.863 回答
0

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

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() 方法可以。

于 2012-11-09T19:33:47.540 回答
0

当我尝试它们时,大多数事情都给了我一个错误。最适合我的是使用它

comboBox.getSelectionModel.clearSelection();

这实际上会将您的 ComboBox 的值设置为 null。因此,如果您在其他地方引用 ComboBox 的值,则使用此检查 ComboBox 的值是否为空变得很重要

if(comboBox.getValue() != null)
  //Code segment here
于 2018-03-29T01:13:17.203 回答
-1

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

于 2012-10-30T09:34:34.960 回答