0
我想通过设置菜单让用户编辑应用程序UI颜色。 默认颜色在.css文件中定义,例如:如何在运行时覆盖(编辑)CSS颜色?
.vertex {
-fx-fill: rgba(64, 196, 255, 1);
}
在上面的例子我想重写-fx填充颜色无论用户将会从颜色拾取对话框中选择。有没有可能在运行时更新CSS类属性?怎么样 ?
我想通过设置菜单让用户编辑应用程序UI颜色。 默认颜色在.css文件中定义,例如:如何在运行时覆盖(编辑)CSS颜色?
.vertex {
-fx-fill: rgba(64, 196, 255, 1);
}
在上面的例子我想重写-fx填充颜色无论用户将会从颜色拾取对话框中选择。有没有可能在运行时更新CSS类属性?怎么样 ?
您可以在CSS文件中使用查到的颜色:
.vertex {
-vertex-fill: rgba(64, 196, 255, 1);
-fx-fill: -vertex-fill ;
}
,然后你可以使用内嵌样式在运行时修改它。您可以在任何组件的祖先上调用setStyle()
,它将应用于所有后代组件。例如。适用与样式类.vertex
场景改变的一切,现场设置的根的风格:
Color selectedColor = colorPicker.getValue();
int red = (int) (255 * selectedColor.getRed());
int green = (int) (255 * selectedColor.getGreen());
int blue = (int) (255 * selectedColor.getBlue());
double opacity = selectedColor.getOpacity();
String userColor = String.format("rgba(%d, %d, %d, %f)", red, green, blue, opacity) ;
scene.getRoot().setStyle("-vertex-fill: " + userColor + " ;");
如何参照具体的CSS类?你的例子我想在.root类中设置变量。 另外我没有问这个问题明确,我不期望答案,但这对颜色编辑很重要 - 如何将颜色从.css转换(读取)到Color对象? – ievgen
@ievgen外部文件中的CSS将'-vertex-color'的值应用于CSS类'vertex'的任何东西的填充。 Java代码更改'root'元素的'-vertex-color'的值,该元素将该值应用于根节点的所有后代。所以效果是改变CSS样式类“顶点”的根节点的所有后代的填充。我添加了用于创建所选颜色的字符串表示的代码。 –
理解,非常感谢! – ievgen