将 DoubleBinding 值转换为 IntegerBinding
Convert DoubleBinding value to IntegerBinding
我有以下问题。
我想将一个带有 DoubleBinding 的字符串连接到一个字符串 属性.
Slider slider = new Slider(1, 5000, 500);
Label sliderValue = new Label();
sliderValue.textProperty().bind(Bindings.concat("Sleep: ", slider.valueProperty()));
这工作正常。
但我不想将 Double Binding 显示为 Double,我想将其四舍五入为 int。
如您在屏幕截图中所见,数字以双精度形式添加到字符串中。
有没有办法做到这一点,而不创建一个监听器?
对不起,如果我的英语不正确。 :P
您可以将 double
转换为 int
:
sliderValue.textProperty().bind( Bindings.concat( "Sleep: ",
Bindings.createIntegerBinding( () -> (int) slider.valueProperty().get(), slider.valueProperty()) ) );
您可以使用 Bindings.format 代替:
sliderValue.textProperty().bind(
Bindings.format("Sleep: %.0f", slider.valueProperty())
);
我有以下问题。 我想将一个带有 DoubleBinding 的字符串连接到一个字符串 属性.
Slider slider = new Slider(1, 5000, 500);
Label sliderValue = new Label();
sliderValue.textProperty().bind(Bindings.concat("Sleep: ", slider.valueProperty()));
这工作正常。
但我不想将 Double Binding 显示为 Double,我想将其四舍五入为 int。
如您在屏幕截图中所见,数字以双精度形式添加到字符串中。
有没有办法做到这一点,而不创建一个监听器?
对不起,如果我的英语不正确。 :P
您可以将 double
转换为 int
:
sliderValue.textProperty().bind( Bindings.concat( "Sleep: ",
Bindings.createIntegerBinding( () -> (int) slider.valueProperty().get(), slider.valueProperty()) ) );
您可以使用 Bindings.format 代替:
sliderValue.textProperty().bind(
Bindings.format("Sleep: %.0f", slider.valueProperty())
);