答案 0 :(得分:1)
无需实现自定义控件,但您需要一个单元工厂来执行此操作。基本思想是在需要时为单元格添加样式类,如果不需要则将其删除。所以你可以这样做,例如:
final String cellStyleClass = "my-combo-box-cell" ;
ComboBox<String> combo = new ComboBox<>();
combo.setCellFactory(listView -> new ListCell<String>() {
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty) ;
getStyleClass().remove(cellStyleClass);
if (empty) {
setText(null);
} else {
setText(item);
if (/* needs style class */) {
getStyleClass().add(cellStyleClass);
}
}
}
});
查看是否需要添加样式类的测试显然可以引用item
等。
现在,在CSS文件中,您可以根据需要设置单元格的样式:
.my-combo-box-cell {
/* specific styles here... */
}