JAVAFX:可以通过代码设置css吗?

JAVAFX:可以通过代码设置css吗?,javafx,Javafx,我有以下代码: .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% );} 是否可以通过代码进行设置?如果是,

我有以下代码:

.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%
);}
是否可以通过代码进行设置?如果是,怎么做

我想通过代码设置,因为我想解决另一个问题

一个人告诉我使用查找获取选择器,但它返回null

下面的代码就是我所做的?你能告诉我怎么了吗

Node bar = progress.lookup(".bar"); 

任何帮助都将不胜感激。

您可以使用查找获取节点,然后调用setStyle()

查找不是很可靠,通常在css应用于场景图之前不起作用(即返回null)。这通常发生在第一次渲染过程中。因此,作为最低要求,您需要在舞台展示后执行此操作。您可能会发现需要将其包装在一个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);
我不知道这是否适用于你的动画,但值得一试