如何在ComboBox中添加“空”选择?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在ComboBox中添加“空”选择?相关的知识,希望对你有一定的参考价值。
我有一个填充自定义对象的ComboBox
。但是,我需要允许选择无选择(或空值)。我尝试了comboBox.getItems().add(null)
,但这并没有添加空选择。
如何在顶部添加空白选项以基本上允许用户“取消选择”所有项目?
答案
您可以添加占位符元素。您只需要测试引用相等性,而不是检查取消选择的项目。根据类设计,您可能需要使用自定义单元工厂来显示此项的无文本:
public class CustomItem {
private final String text;
public CustomItem(String text) {
this.text = text;
}
public String getText() {
return text;
}
}
final CustomItem emptyPlaceholder = new CustomItem(null);
ComboBox<CustomItem> combo = new ComboBox<>();
combo.getItems().addAll(emptyPlaceholder, new CustomItem("foo"), new CustomItem("bar"));
combo.setCellFactory(lv -> new ListCell<CustomItem>() {
@Override
protected void updateItem(CustomItem item, boolean empty) {
super.updateItem(item, empty);
setText((empty || item == null || item == emptyPlaceholder)
? ""
: item.getText());
}
});
combo.setButtonCell(combo.getCellFactory().call(null));
以上是关于如何在ComboBox中添加“空”选择?的主要内容,如果未能解决你的问题,请参考以下文章