我的视图中有一个 TreeTableView 控件,它有一列,由两个标签组成。也就是说,在运行时,通过显示两个标签来呈现单元格:
class ItemCell extends TreeTableCell[InventoryModelItem, InventoryModelItem] {
val hbox = new HBox()
val actionLabel = new Label()
actionLabel.styleClass.add("label-hotkey")
val itemLabel = new Label()
hbox.children.addAll(actionLabel, itemLabel)
setGraphic(hbox)
override def updateItem(item: InventoryModelItem, empty: Boolean): Unit = {
if (!empty && item != null) {
actionLabel.setText(item.action.getOrElse(""))
itemLabel.setText(item.displayName)
}
//setTextFill(Color.BLUE);
//setStyle("-fx-background-color: yellow");
}
}
我想要实现的是动作标签以不同的样式呈现。因此我通过 actionLabel.styleClass.add("label-hotkey") 设置它。css 样式一般被识别:
.label-hotkey {
-fx-font-size: 11pt;
-fx-font-family: "Droid Sans Mono";
-fx-text-fill: yellow;
-fx-opacity: 0.6;
}
例如,在渲染过程中会考虑 -fx-font-size。问题是 -fx-text-fill 被忽略,因此标签的颜色不是黄色。
那么,我在这里做错了什么?
编辑:即使 setTextFill(Color.BLUE) 也没有效果(参见编码中的注释部分)