我有以下代码:
.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%
);}
可以通过代码设置吗?如果是,该怎么做?
我想通过代码设置,因为我想解决另一个问题,点击这里 https://stackoverflow.com/questions/22750164/javafx-progressbar-how-to-add-an-animation
一个人告诉我使用查找获取选择器,但它返回 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);
我不知道这是否适用于您的动画,但值得一试......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)