将 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())
);