2015-04-03 87 views
0

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

我试着玩绑定功能,但失败了。 :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 
    ... 
    } 
    ... 
} 
+0

'我想改变所有按钮的文本' - 我只能看到一个按钮。 – ItachiUchiha 2015-04-03 14:20:49

+0

我是指这个类的所有实例,因为我正在创建其中的5个实例。 – Kidades 2015-04-03 18:15:28

回答

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"); 
     }); 
     ... 
    } 
    ... 
} 
相关问题