我有以下代码:
.progress-bar > .bar {
-fx-background-color: linear-gradient(
from 0em 0.75em to 0.75em 0px,
repeat,
-fx-accent 0%,
-fx-accent 49%,
derive(-fx-accent, 30%) 50%,
derive(-fx-accent, 30%) 99%
);}
是否可以通过代码进行设置?如果是的话,怎么做?
我想按代码设置,因为我想解决另一个问题,click here
一个人告诉我使用lookup get selector,但它返回null。
以下代码是我做的?你能告诉我什么是错的吗?
Node bar = progress.lookup(".bar");
任何帮助将不胜感激。
答案 0 :(得分:1)
您可以使用查找来获取节点,然后调用setStyle()。
查找不是非常健壮,并且通常不起作用(即将返回null),直到css已应用于场景图。这通常发生在第一个渲染过程中。因此,至少,您需要在显示舞台后执行此操作。您可能会发现需要将其包装在Platform.runLater(...)中以使其正常工作。
如果您只想更改背景颜色,并且需要动态更改,请考虑使用查找颜色。
类似的东西:
css文件:
.progress-bar {
my-bar-color: linear-gradient(
from 0em 0.75em to 0.75em 0px,
repeat,
-fx-accent 0%,
-fx-accent 49%,
derive(-fx-accent, 30%) 50%,
derive(-fx-accent, 30%) 99%
);}
.progress-bar > .bar {
-fx-background-color: my-bar-color ;
}
现在用Java可以做到
String color = ... ;
progress.setStyle("my-bar-color: "+color);
我不知道这是否适用于您的动画,但值得一试......