我有一个JavaFX 2应用程序,其中所有按钮都使用默认样式(灰色渐变)。在应用程序的一些特殊领域,背景颜色是红色,黄色或绿色。在这些领域,我也有按钮。是否可以在JavaFX 2中“着色”按钮
而不是重新造型所有三种颜色的按钮的所有不同状态(正常,悬停,按下),我想给按钮背景的色调。这是可能的,以及如何?
如果没有,是否有一种方法可以轻松地重新设置基本按钮样式,并使悬停和按下状态(伪选择器)自动从此样式派生?
如果这是不可能的,我愿意提供建议。我最重要的目标是避免冗余/重复声明(特别是梯度),以防有人想要稍后添加不同的颜色面板,或者只是更改一种背景颜色的阴影。
CSS为红色面板/键:
#my-red-panel {
-fx-border-width: 1;
-fx-border-radius: 5;
-fx-background-radius: 5;
-fx-smooth: true;
-fx-border-color: rgb(209, 65, 42);
-fx-background-color: rgba(255, 78, 50, 0.89);
}
#my-red-panel .button {
-fx-background: rgba(0, 0, 0, 0); /* Now borders look good, but button is still grey*/
}
我的最好的选择,到目前为止,是使用半透明的梯度,像这样:
#my-red-panel .button {
-fx-background-color: linear-gradient(rgba(255, 255, 255, 0.3), rgba(0, 0, 0, 0.2));
}
我仍然要声明每个状态,但至少我可以更改底层的颜色而不必修改每个状态。主要的问题是,这会取代按钮的整体外观,所以我希望更好的东西...: -/
难道只能让按钮变成白色并使用alpha百分比玩吗?没有测试过它,但也许它会给你想要的结果。像'rgba(255,255,255,.80)' – Perneel
感谢@Perneel!我已经想到了(更新了这个问题),虽然没有我期待的那么优雅,但它还是有用的。 – haraldK