点击更改javafx按钮颜色?

点击更改javafx按钮颜色?

问题描述:

我知道我可以通过按下伪选择设置颜色:做点击更改javafx按钮颜色?

myButton:pressed{} 

问题是,我尝试从我的样式表覆盖的CSS背景色要做到这一点代码:

myButton.setStyle("fx-background-color: #FFF"); 

虽然后者失败,但会改变颜色。难道一旦我设置我的样式表,我不能覆盖它?如何在点击时更改按钮颜色?

+0

是否要改变按颜色,然后退回到原来的颜色或你想改变第一次点击的颜色,然后保持相同的颜色? – ItachiUchiha

+0

@IchichiUchiha首先点击并保持。难道是因为我在fx之前错过了一个破折号? XD omg。我不知道这个问题是否值得删除大声笑 – Asperger

我不得不做类似的事情(在这里被简化,也只是其更改样式的按钮的代码的一部分),我这样做,我希望这将有助于你

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; 
} 
+1

这很不错。谢谢。你会推荐它超过setStyle吗? – Asperger

+0

removeAll()中的第二个参数'focus'是什么? –

+0

这是在CSS中定义的其他类,对不起,也许我忘了它,当我写了答案 – MaglioniLorenzo