我经常想为 JavaFX 组件做一些简单的样式设置,例如更改树形表格单元格的背景。我找不到任何替代品
cell.setStyle("-fx-background-color: blue");
对于同一个表格单元格,我还想更改文本的颜色:
cell.setTextFill(Color.WHITE);
编写第二个方法调用远比在
setStyle("???")
中摆弄字符串更不容易出错,更不用说使用 .css
文件进行样式设置了。 @jewelsea 告诉我我在这里遗漏了一些东西。谁能给我提示吗?
所有 CSS 属性都与相应对象中的属性相对应,尽管命名并不总是相同。您可以使用文档来发现相应的 Java 属性。
在此特定情况下,请注意
-fx-background-color
是 Region
的 CSS 属性。参考 Region
的 Javadocs,您将看到有一个 background
属性,需要 Background
类型的参数。在 JavaFX 18 及更高版本中,您可以使用静态便捷方法 Background.fill(...)
来创建给定特定填充(例如颜色)的背景。
那么
cell.setBackground(Background.fill(Color.BLUE));
将给出所需的结果。