2016-10-02 9 views
0

Я знаю, что могу установить цвет с помощью нажатия переключателя псевдо:Изменение цвета кнопки javafx на клик?

myButton:pressed{} 

Проблема заключается в том, им пытаются сделать это в коде, перекрывая цвет CSS фона из моей таблицы стилей, выполнив:

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

Последний не может изменить цвет. Может ли быть так, как только я установил мою таблицу стилей, которую я не могу отменить? Как изменить цвет кнопки при нажатии?

+0

хотите изменить цвет на прессе, а затем возврат к первоначальному цвету, или вы хотите изменить цвет на первый щелчок, а затем поддерживать тот же цвет? – ItachiUchiha

+0

@ItachiUchiha первый клик и выдержка. Может быть, им не хватает черты перед fx? XD omg. Интересно, стоит ли этого вопроса удалять lol – Asperger

ответ

3

я должен был сделать подобную вещь (здесь упрощена, есть только часть кода, изменить стиль к кнопке) и я сделал это, я надеюсь, что это будет полезно для вас

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

Thats довольно приятно. Благодарю. Вы порекомендовали бы его над setStyle? – Asperger

+0

Что является вторым аргументом «focus» в removeAll(); –

+0

Это другой класс, определенный в css, извините, возможно, я забыл его, когда написал ответ – MaglioniLorenzo