当bool值改变时更改按钮文本

时间:2015-04-03 14:18:54

标签: javafx

我有一个扩展Button的类。有一个静态布尔值设置为false。当此布尔值将值更改为true时,我想更改所有按钮的文本。

我尝试使用绑定功能,但失败了。 :d

public class KolonaA extends Button{
    ...
    static Boolean solved = false;
    ...
    public KolonaA() {
    super();
    this.setPrefSize(size[0], size[1]);
    this.setLayoutX(xCord + buttonCount * 30);
    this.setLayoutY(yCord + buttonCount * 40);

    //something like this:
    this.textProperty().bind(solved ? "true" "false"); 
    //CHANGE TEXT OF BUTTON WHEN solved CHANGES VALUE
    ...
    }
    ...
}

1 个答案:

答案 0 :(得分:2)

我不完全确定它只是一个按钮和一组按钮。如果要更改已发布代码的自定义按钮的文本,而不是布尔值,请使用BooleanProperty。稍后您可以向其添加Listener并相应地更改按钮的文本。

public class KolonaA extends Button{
    ...
    public BooleanProperty solved = new SimpleBooleanProperty();
    ...
    public KolonaA() {
        super();
        solved.addListener((observable, oldValue, newValue) -> {
                if(newValue)
                    setText("True");
                else
                    setText("False");
        });
        ...
    }
    ...
}