JavaFX CSS在运行时更改自定义样式类的属性

时间:2017-08-06 18:43:08

标签: java css javafx styling

我是CSS的新手,因为我从未使用过weblanguages但是对于JavaFX应用程序,我有一个带有Windows 10 UWP主题的css样式表。默认样式类使用默认的Windows灰色按钮主题,但我还为彩色组件创建了自定义样式类。

颜色在默认样式的.root样式类中作为变量,并在.colored样式类中覆盖彩色样式。

.root 
{
    -fill-color: #CCCCCC;
    ...
}

.colored
{
    -fill-color: #DD2867;
    ...
}

我现在想在运行时更改彩色样式颜色。 我知道Node#setStyle(String),我可以在其中修改填充颜色,如下所示:

root.setStyle("-fill-color: #FF00FF;");

但这只会对.root样式类中的颜色产生影响,而不会影响.colored样式类。

你能告诉我一种在运行时直接修改样式类属性的方法,或者使用默认和彩色样式的更好方法吗?

提前致谢, Eleom。

1 个答案:

答案 0 :(得分:0)

在根节点上定义另一个查找颜色,并在.colored类中使用它:

{
    -fill-color: #CCCCCC;
    -colored-fill: #DD2867 ;
    ...
}

.colored
{
    -fill-color: -colored-fill;
    ...
}

然后您可以用相同的方式以编程方式更改该颜色:

root.setStyle("-colored-fill: ... ;");