java - 在 JavaFX 元素中使用 css

标签 java css javafx

我有一个 .css 文件,其中包含一些标签样式。这是这个文件的一部分:

#defaultBeforeAndNowLabel {
    -fx-background-color: "C4BA62";
    -fx-text-fill: blue;
    -fx-alignment: center;
    -fx-font-size: 1.3em;
    -fx-font-weight: bold;
}

#changedLabelBefore {
    -fx-font-size: 1.5em;
    -fx-background-color: red;
    -fx-text-fill: black;
    -fx-alignment: center;
    -fx-font-weight: bold;
}

#changedLabelNow {
    -fx-font-size: 1.5em;
    -fx-background-color: lawngreen;
    -fx-text-fill: white;
    -fx-alignment: center;
    -fx-font-weight: bold;
}

在代码中我使用了这样的东西:

label.setId("changedLabelBefore");

它有效,但是 .css 文件中有太多重复项,我想我可以使用类似继承的方法来避免它。如何更改我的 .css 文件以及如何在 java 代码中使用它?

最佳答案

一种可能的解决方案是使用类而不是 ID。

.css 文件看起来像

.defaultLabel {
  -fx-alignment: center;
  -fx-font-weight: bold;
  …
}

.defaultLabelBefore {
  -fx-text-fill: black;
  -fx-background-color: red;
} 

相应的 java 代码看起来像

Label.getStyleClass.addAll(“defaultLabel”, “defaultLabelBefore”);

关于java - 在 JavaFX 元素中使用 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31906188/

相关文章:

java - 如何在两个不同的 Swing 窗口之间共享方法?

java - 如何配置 Super CSV 以引用除列名之外的所有值?

css - Umbraco 站点的一部分路径从站点禁用 css

JavaFX 获取下个月的第一天

java - 如何通过MediaView播放音频流

Java GUI 将按钮移动到页面底部

java - Windows 或 UWP 上的 Android 建议

html - 如何实现这种效果?它关于边界/线

css - 仅在父级使用第 nth-child

JavaFX:添加单击监听器以识别在 TableView 中单击了哪个单元格