点击更改javafx按钮颜色?
我知道我可以通过按下伪选择设置颜色:做点击更改javafx按钮颜色?
myButton:pressed{}
问题是,我尝试从我的样式表覆盖的CSS背景色要做到这一点代码:
myButton.setStyle("fx-background-color: #FFF");
虽然后者失败,但会改变颜色。难道一旦我设置我的样式表,我不能覆盖它?如何在点击时更改按钮颜色?
我不得不做类似的事情(在这里被简化,也只是其更改样式的按钮的代码的一部分),我这样做,我希望这将有助于你
button.setOnAction((ActionEvent e) -> {
button.getStyleClass().removeAll("addBobOk, focus");
//In this way you're sure you have no styles applied to your object button
button.getStyleClass().add("addBobOk");
//then you specify the class you would give to the button
});
CSS:
.addBobOk{
-fx-background-color:#90EE90;
-fx-background-radius: 5,5,4;
-fx-background-insets: 0 0 -1 0,0,1;
-fx-effect: dropshadow(three-pass-box , rgba(0,0,0,0.4) , 5, 0.0 , 0 , 1);
-fx-text-alignment: center;
}
.addBobOk:hover{
-fx-background-color:#64EE64;
-fx-effect: dropshadow(three-pass-box , rgba(0,0,0,0.4) , 5, 0.0 , 0 , 1);
-fx-text-alignment: center;
}
.busy{
-fx-background-color:#B3B3B3;
-fx-text-alignment: center;
}
.busy:hover{
-fx-background-color:cdcbcb;
-fx-text-alignment: center;
}
这很不错。谢谢。你会推荐它超过setStyle吗? – Asperger
removeAll()中的第二个参数'focus'是什么? –
这是在CSS中定义的其他类,对不起,也许我忘了它,当我写了答案 – MaglioniLorenzo
是否要改变按颜色,然后退回到原来的颜色或你想改变第一次点击的颜色,然后保持相同的颜色? – ItachiUchiha
@IchichiUchiha首先点击并保持。难道是因为我在fx之前错过了一个破折号? XD omg。我不知道这个问题是否值得删除大声笑 – Asperger