在 ControlsFX CheckComboBox 中设置默认选中的复选框

Set the default selected checkboxes in a ControlsFX CheckComboBox

我正在尝试为 ControlsFX CheckComboBox v8.0.3Java 8

设置默认选择值

我已经尝试了 中接受的答案,但是当我尝试

CheckComboBox.getCheckModel().check(0);        

我得到一个 class 无法从静态上下文中引用。当我尝试以下操作时,我得到 cannot resolve method check(int);

final CheckComboBox<String> checkComboBox = new CheckComboBox<>(strings);
checkComboBox.getCheckModel().check(0);  

如果我尝试 getCheckmodel().selectIndices(0),只有当从 CheckComboBox 中选择新值时,第一个 All1 才会填充到 CheckComboBox。有没有办法在选择索引后刷新 comboxBox 或任何其他方式来实现我想要的?

Text numberTypeText = new Text("Features supported:");
final ObservableList<String> strings = FXCollections.observableArrayList();
strings.add("All1");
strings.add("All2");
strings.add("All3");
strings.add("All4");
strings.add("All5");
strings.add("All6");
strings.add("All7");
strings.add("All8");

final CheckComboBox<String> checkComboBox = new CheckComboBox<>(strings);
        checkComboBox.getCheckModel().selectIndices(0);

checkComboBox.getCheckModel().getSelectedItems().addListener(new ListChangeListener<String>() {
    public void onChanged(ListChangeListener.Change<? extends String> c) {
        System.out.println(checkComboBox.getCheckModel().getSelectedItems());
    }
});

如有任何帮助,我们将不胜感激。

When I try the following I get cannot resolve method check(int);

这是因为您使用的是非常旧版本的ControlsFX。将您的 ControlsFX 升级到更新的版本。

If I try getCheckmodel().selectIndices(0) the first All1 is populated to the CheckComboBox only when a new value is selected from the CheckComboBox.

这似乎是一个错误,已在较新版本的 ControlsFX 中修复。

在 v8.40.14 中,我可以使用 check() 方法设置默认复选框:

checkComboBox.getCheckModel().check(0);

或者,如果要检查多个项目,checkIndices()方法:

checkComboBox.getCheckModel().checkIndices(0, 1);