2015-10-15 14 views
6

Ich möchte JavaFX Label.textProperty mit int Wert binden.JavaFX-Bindung Label mit int-Wert

Ich versuchte, z.B.

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

oder

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

Aber ich bekomme immer Nullpointer.

Wie kann ich es beheben?

+0

Irgendwelche Gründe für die Verwendung der bidirektionalen Bindung auf Label? – ItachiUchiha

+0

@ItachiUchiha Möglicherweise, weil es erlaubt, einen 'StringConverter' zur Verfügung zu stellen. Ich habe das ausprobiert, bevor ich festgestellt habe, dass Sie 'integerProperty.asString()' mit einer unidirektionalen Bindung verwenden können, wie Sie in Ihrer Antwort darauf hingewiesen haben. – Ruben9922

Antwort

9

Wenn Sie einen int haben Sie einen SimpleIntegerProperty daraus erstellen und dann die asString() auf sie aus:

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

Wenn Sie eine IntegerProperty haben, können Sie direkt verwenden es

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

Zusätzlicher Tipp: Sie können die überladene Version von 'asString (String format)' verwenden, die ein Format zur zusätzlichen Formatierung der Zahl verwendet. –