【问题标题】:Converting Integer to ObservableValue<Integer> in javafx在 javafx 中将整数转换为 ObservableValue<Integer>
【发布时间】:2013-01-02 23:55:12
【问题描述】:

如何在 javafx 2.0 及更高版本中将Integer 转换为ObservableValue&lt;Integer&gt;

【问题讨论】:

    标签: javafx javafx-2


    【解决方案1】:

    我们使用ReadOnlyObjectWrapper&lt;&gt;(*integer value*); 并将值存储在ObservableValue&lt;Integer&gt; 引用中。

    ObservableValue<Integer> obsInt = new ReadOnlyObjectWrapper<>(intValue);
    

    更新

    启动 JavaFX 8,您还可以执行以下操作:

    ObservableValue<Integer> obsInt = new SimpleIntegerProperty(intValue).asObject();
    

    【讨论】:

      【解决方案2】:

      另一种方式。

      new SimpleIntegerProperty(integer_value).asObject()
      

      【讨论】:

      • #asObject() 在 JavaFX 8 中添加
      • 一个微妙的问题,如果你需要Integer(对象)而不是原始int(可能允许空引用),你必须使用ReadOnlyObjectWrapper&lt;Integer&gt;而不是@ 987654326@
      【解决方案3】:

      如果您使用 tableview,请执行以下操作: 只需将整数更改为数字

      @FXML
      private TableColumn<Sockets,Number> key;
      ...
      key.setCellValueFactory(cellData -> cellData.getValue().socketIdProperty());
      

      【讨论】:

        【解决方案4】:

        IntegerProperty 实现 ObservableValue&lt;Number&gt; 而不是 ObservableValue&lt;Integer&gt;。所以你应该这样做:

        // Here Person is a class and age is a variable of type IntegerProperty
        ObservableValue<Number> ob = Person.age;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-13
          • 1970-01-01
          • 1970-01-01
          • 2015-03-07
          • 2015-03-22
          相关资源
          最近更新 更多