2015-04-03 3 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

+0

Я имел в виду все экземпляры этого класса, так как я создаю 5 из них. – Kidades

ответ

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"); 
     }); 
     ... 
    } 
    ... 
}