JavaFX - 在运行时更改 CSS 个特定值
JavaFX - Change CSS specific values in runtime
我正在使用基础 css 文件开发 JavaFX 应用程序。
我想要一个功能,用户可以 select 一种基色,可能使用颜色选择器或类似的东西,我将更改 css 文件以使用以下方法计算颜色这是基础。
或者可能是使用变量而不是静态颜色在 CSS 文件中使用派生方法的自定义方式?
感谢您的帮助!
查看 modena.css 中 JavaFX 的预定义颜色(或 caspian.css 用于较旧的 JavaFX-2)。对于 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 更亮、更暗 and/or 从中获得新的颜色。参考api.
我正在使用基础 css 文件开发 JavaFX 应用程序。
我想要一个功能,用户可以 select 一种基色,可能使用颜色选择器或类似的东西,我将更改 css 文件以使用以下方法计算颜色这是基础。
或者可能是使用变量而不是静态颜色在 CSS 文件中使用派生方法的自定义方式?
感谢您的帮助!
查看 modena.css 中 JavaFX 的预定义颜色(或 caspian.css 用于较旧的 JavaFX-2)。对于 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 更亮、更暗 and/or 从中获得新的颜色。参考api.