2012-10-07 43 views
2

我是javafx的新手,我嘗試創建可編輯的整數列。在javafx-2.2的TableView中設置可編輯的整數列

我讀過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 [Integer]而不是StringConverter [Number],TextFieldTableCell也是不變的值類型。

所以我得到的衝突:

  • IntegerProperty需要數量型
  • 字符串轉換爲整數類型
  • 的TableColumn是不變的,需要兩種類型的匹配

TableColumn的是如何應該是與此限制一起使用?

+0

+1表示「TableColumn應該如何與此限制一起使用?」 –

回答

0

我記得我一旦使用javafx.beans.property.adapter.JavaBeanIntegerPropertyBuilder來構建一個javafx.beans.property.adapter.JavaBeanIntegerProperty類似的東西。

我建議你使用這個適配器類而不是IntegerProperty。我現在被捆綁了,但我會實現它,並儘快編輯這個答案。

+0

我研究這個文檔:http://docs.oracle.com/javafx/2/api/javafx/beans/property/adapter/JavaBeanIntegerProperty.html 它說,JavaBeanIntegerProperty是ObservableValue [Number]的後代以及IntegerProperty – ayvango

0

我想我使用ScalaFX 1.0.0.M2斯卡拉2.10時也有類似的問題。使用我一直:

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 
    } 
    } 

而且,和非常重要,我不得不升級到1.0.0 ScalaFX。 M4 for Scala 2.10。

我還沒有做出細胞可編輯的,所以我會盡力了這一點,並讓你知道如何去。

相關問題