如何将“空”选择添加到 ComboBox?
Posted
技术标签:
【中文标题】如何将“空”选择添加到 ComboBox?【英文标题】:How to add "empty" selection to ComboBox? 【发布时间】:2018-03-05 20:36:22 【问题描述】:我有一个填充了自定义对象的ComboBox
。但是,我需要允许选择 no 选择(或空值)。我试过comboBox.getItems().add(null)
,但这并没有添加一个空的选择。
如何在顶部添加一个空白选择以允许用户“取消选择”所有项目?
【问题讨论】:
【参考方案1】:您可以添加一个占位符元素。您只需测试引用相等性,而不是检查取消选择的项目。根据类设计,您可能需要使用自定义单元工厂来显示此项的无文本:
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));
【讨论】:
您可以创建一个额外的列表,其中包含 null 作为第一项,并根据原始列表进行更新,而不是使用占位符元素:***.com/a/60580431/898747以上是关于如何将“空”选择添加到 ComboBox?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Powershell 将 ComboBox 选定文件附加到 TextBox?