我正在尝试使用ControlsFX CheckComboBox v8.0.3Java 8设置默认选择的值

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

CheckComboBox.getCheckModel().check(0);


我得到一个不能从静态上下文引用的类。当我尝试以下操作时,我无法解析方法check(int);

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


如果尝试getCheckmodel().selectIndices(0),则仅当从All1中选择了新值时,第一个CheckComboBox才会填充到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());
    }
});


任何帮助,将不胜感激。

最佳答案

当我尝试以下操作时,我无法解析方法check(int);


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


  如果我尝试使用getCheckmodel()。selectIndices(0),则只有在从CheckComboBox中选择一个新值时,才会将第一个All1填充到CheckComboBox中。


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

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

checkComboBox.getCheckModel().check(0);


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

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

07-25 22:24