【问题标题】:Convert DoubleBinding value to IntegerBinding将 DoubleBinding 值转换为 IntegerBinding
【发布时间】:2015-06-12 12:30:05
【问题描述】:

我有以下问题。 我想将带有 DoubleBinding 的字符串连接到字符串属性。

Slider slider = new Slider(1, 5000, 500);
Label sliderValue = new Label();
sliderValue.textProperty().bind(Bindings.concat("Sleep: ", slider.valueProperty()));

这工作正常。

但我不想将 Double Binding 显示为 Double,我想将其四舍五入为 int。

正如您在屏幕截图中看到的那样,数字作为 Double 添加到 String。

有没有办法做到这一点,而无需创建监听器?

对不起,如果我的英语不正确。 :P

【问题讨论】:

    标签: binding javafx double javafx-8


    【解决方案1】:

    您可以改用Bindings.format

    sliderValue.textProperty().bind(
      Bindings.format("Sleep: %.0f", slider.valueProperty())
    );
    

    【讨论】:

      【解决方案2】:

      您可以将double 转换为int

      sliderValue.textProperty().bind( Bindings.concat( "Sleep: ", 
         Bindings.createIntegerBinding( () -> (int) slider.valueProperty().get(), slider.valueProperty()) ) );
      

      【讨论】:

      • 这个解决方案也不错。但我更喜欢 Bindings.format 的那个。还是谢谢你
      猜你喜欢
      • 2016-04-16
      • 1970-01-01
      • 2019-05-19
      • 2021-11-04
      • 2011-09-17
      • 1970-01-01
      • 2019-10-16
      • 2021-09-14
      • 1970-01-01
      相关资源
      最近更新 更多