【问题标题】:How can I display a DoubleProperty on my scene?如何在我的场景中显示 DoubleProperty?
【发布时间】:2016-07-19 02:31:55
【问题描述】:

我希望这个 totalSalesAmountProperty 显示该值,但即使在它被更新并且具有实际值之后,它仍然不显示。我知道这有一个价值,因为我 system.out getter 方法并且我得到了一个价值。为什么会这样?

Label lblTotalSales = new Label(String.valueOf(newSale.getTotalSalesAmount1()));

【问题讨论】:

    标签: java javafx


    【解决方案1】:

    您需要将标签的文本属性绑定到totalSalesAmountProperty:

    label.textProperty().bind(totalSalesAmountProperty);
    

    那么标签文本会在 totalSalesAmountProperty 被修改时自动更新。

    【讨论】:

      【解决方案2】:

      试试这个(getTotalSalesAmount1()的返回类型是什么??这里我认为是double

      Label lblTotalSales = new Label(" " + newSale.getTotalSalesAmount1());
      

      【讨论】:

        【解决方案3】:

        通过使用

        Label lblTotalSales = new Label(String.valueOf(newSale.getTotalSalesAmount1()));
        

        您在调用Label 构造函数之前将文本设置为String.valueOf(newSale.getTotalSalesAmount1()) 返回的String,即它产生的结果与

        String s = String.valueOf(newSale.getTotalSalesAmount1());
        Label lblTotalSales = new Label(s);
        

        Strings 在 java 中既不可变也不可观察,因此文本不会自动更新。

        要解决此问题,请将LabeltextProperty 绑定到DoublePropertyString 版本。这将向属性添加侦听器,每次DoubleProperty 更改时,该属性都会更新Label 的文本。

        DoubleProperty propertyToShow = ...
        Label label = new Label();
        label.textProperty().bind(propertyToShow.asString());
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-04-09
          • 1970-01-01
          • 1970-01-01
          • 2023-03-09
          • 2021-08-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多