我正在使用基本css文件执行JavaFX应用程序。
我希望有一个功能,用户可以选择基色,也许使用拾色器或类似的东西,我将更改css文件以使用此作为基础计算颜色。
或者也许是一种使用变量而不是静态颜色在CSS文件中使用派生方法的自定义方法?
感谢您的帮助!
答案 0 :(得分:1)
从modena.css(或旧版JavaFX-2的caspian.css)中查看JavaFX的预定义颜色。对于example。这些颜色是JavaFX大多数控件的基础,但当然只为某些控件定义了更多特定的颜色。
您可以在运行时更改它们,并应用于顶级(或任何)窗格,即场景的父根:
Color selectedColor = colorPicker.getValue();
String rgb = getRgbString( selectedColor );
myScene.getRoot().setStyle( "-fx-accent: " + rgb + "; -fx-focus-color:" + rgb );
,其中
private String getRgbString( Color color )
{
int r = ( int ) Math.round( color.getRed() * 255.0 );
int g = ( int ) Math.round( color.getGreen() * 255.0 );
int b = ( int ) Math.round( color.getBlue() * 255.0 );
return "rgb(" + r + "," + g + "," + b + ")";
}
您也可以使Color更亮,更暗和/或从中获取新颜色。请参阅api。