2015-10-15 10 views
6

Chcę powiązać JavaFX Label.textProperty z wartością int.Etykieta wiązania JavaFX z wartością int

Próbowałem np.

Label.textProperty().bindBidirectional(new SimpleIntegerProperty(myInt), 
                 new NumberStringConverter()); 

lub

Label().textProperty().bindBidirectional(new SimpleIntegerProperty(myInt), 
                   new DecimalFormat()); 

ale zawsze NullPointerException.

Jak mogę to naprawić?

+0

jakichkolwiek powodów do korzystania z dwukierunkowego wiązania na etykiecie? – ItachiUchiha

+0

@ ItachiUchiha Być może dlatego, że pozwala na dostarczenie 'StringConverter'. Próbowałem tego, zanim znalazłem, że możesz użyć 'integerProperty.asString()' z jednokierunkowym wiązaniem, jak wskazałeś w swojej odpowiedzi. – Ruben9922

Odpowiedz

9

Jeśli masz int można utworzyć SimpleIntegerProperty z nim, a następnie użyć asString() na nim:

label.textProperty().bind(new SimpleIntegerProperty(integer).asString()); 

Jeśli masz IntegerProperty, można korzystać bezpośrednio it

label.textProperty().bind(integerProperty.asString()); 
+3

Dodatkowa wskazówka: możesz użyć przeciążonej wersji 'asString (format String)', która przyjmuje format do dodatkowego formatowania numeru. –