使用javafx,我有一个按钮,在css属性中textFill设置为白色。然后在运行时期间需要更改,使用以下代码进行更改:
import javafx.scene.control.Button;
import javafx.scene.paint.Color;
public class QAButton extends Button {
public QAButton(String text) {
this.textProperty().set(text);
}
public void setAnswerVisible(Boolean vis) {
if (vis) this.setTextFill(Color.GREEN);
else this.setTextFill(Color.BLUE);
}
}
然而,它没有做任何事情,textFill将保持白色。如何在运行时更改它? 谢谢。
编辑:我应该添加css代码:
.button {
-fx-text-fill: white;
}
按钮的ID设置为
#question {
-fx-background-color: darkblue;
-fx-background-radius: 0;
-fx-max-width: 2000px;
-fx-max-height: 200px;
-fx-min-height: 80px;
}
答案 0 :(得分:4)
从JavaFX CSS Reference中提取(第二部分):
“该实现允许设计人员使用样式表来设置应用程序样式,以覆盖从代码设置的属性值。”
setStyle API可以解决您的问题。
示例:
this.setStyle("-fx-text-fill: green");
现在,样式类中的所有属性都将被覆盖。 如果这是一个问题,look here。