2

私はjavafxが初めてで、編集可能な整数列を作成しようとしています。

http://docs.oracle.com/javafx/2/api/http://docs.oracle.com/javafx/2/ui_controls/table-view.htmを読みましたが、操作 についてまだ大きな質問があります整数プロパティ。

IntegerProperty を含むモデルを作成しました。IntegerProperty はObservableValue[Number]の子孫です。TableColumn はフィールド型に対して不変であるため、この列をTableColumn[MyModel,Number]として型付けする必要がありました。整数セルを編集できる cellFactory を作成する必要があります。TextFieldTableCell(IntegerStringConverter)はこの目的を達成するはずですが、IntegerStringConverter はStringConverter[Number] ではなく StringConverter [Integer]として型指定され、TextFieldTableCell も値型に対して不変です。

だから私は衝突します:

  • IntegerProperty には数値型が必要です
  • StringConverter は Integer 型を提供します
  • TableColumn は不変であり、両方の型が一致する必要があります

この制限で TableColumn をどのように使用することになっていましたか?

4

2 に答える 2

0

I remember I had to do something similar once using javafx.beans.property.adapter.JavaBeanIntegerPropertyBuilder to build a javafx.beans.property.adapter.JavaBeanIntegerProperty.

I suggest you use this adapter class instead of IntegerProperty. I am kind of tied up now but I will implement it and edit this answer ASAP.

于 2012-10-08T14:55:25.510 に答える
0

Scala 2.10 で ScalaFX 1.0.0.M2 を使用したときに同様の問題が発生したと思います。私は使用していました:

private val portColumn = new TableColumn[Model, Int] {
    text = "Port"
    cellValueFactory = {
      _.value.port
    }
  }

この問題を解決するために、次のように変更しました。

private val portColumn = new TableColumn[Model, Number] {
    text = "Port"
    cellValueFactory = {
      _.value.port.delegate
    }
  }

また、非常に重要なことですが、ScalaFX 1.0.0 にアップグレードする必要がありました。Scala 2.10 のM4 。

セルを編集可能にしていないので、試してみて、どうなるかをお知らせします。

于 2013-06-15T05:09:20.123 に答える