我正在尝试使用ControlsFX CheckComboBox v8.0.3
为Java 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);