在javafx中更改Button textFill属性

时间:2014-09-27 21:33:36

标签: button javafx

使用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;
}

1 个答案:

答案 0 :(得分:4)

JavaFX CSS Reference中提取(第二部分):

  

“该实现允许设计人员使用样式表来设置应用程序样式,以覆盖从代码设置的属性值。”

setStyle API可以解决您的问题。

示例:

this.setStyle("-fx-text-fill: green");

现在,样式类中的所有属性都将被覆盖。 如果这是一个问题,look here