最佳答案
无需实现自定义控件,但您确实需要一个细胞工厂来执行此操作。基本思想是在需要时向单元格添加样式类,如果不需要则将其删除。所以你可以这样做,例如:
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);
}
}
}
});
测试看是否需要添加style class可以明显引用item
等
现在在您的 CSS 文件中,您可以根据需要为单元格设置样式:
.my-combo-box-cell {
/* specific styles here... */
}
关于css - 如何在 JavaFx 的组合/选择框中为特定元素添加自定义 css 样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36777674/