更新Observable列表时,JavaFX组合框显示错误的项目数

时间:2014-12-19 12:44:15

标签: javafx javafx-8

我有一个可以改变其项目的组合框。当更改所述组合框的项目以使之前的项目更少时,组合框仍显示相同数量的项目字段,“额外”字段为空白。

像这样:http://imgur.com/W03NOgo,rGjtNev#1

以下是我用来更改组合框的代码。

@FXML private ComboBox<Task> taskComboBox;
private ObservableList<TaskDTO> tasks = FXCollections.observableArrayList();

public Foo() {
    taskComboBox.setItems(tasks);
}

@FXML
private void loadTaskComboBox(int i) {
    tasks.clear();
    tasks.addAll(getTasks(i));
}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

ComboBox API:

  

默认情况下,显示弹出列表时,最大行数   可见是10,但这可以通过修改来改变   visibleRowCount财产。如果ComboBox中的项目数是   小于visibleRowCount的值,那么项目大小将是   而是使用弹出列表不会太长。

但另一方面,如果项目数量在减少,ListView(弹出内容)将不会缩小。但您可以调整visibleRowCountProperty来调整可见项目的数量。