我是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 [Integer] 而不是StringConverter [Number],TextFieldTableCell对值类型也是不变的。
所以我得到了冲突:
TableColumn应该如何使用这些限制?
答案 0 :(得分:0)
我记得曾经使用javafx.beans.property.adapter.JavaBeanIntegerPropertyBuilder建立一个javafx.beans.property.adapter.JavaBeanIntegerProperty,我必须做类似的事情。
我建议您使用此适配器类而不是IntegerProperty。我现在有点紧张,但我会尽快实现并尽快编辑这个答案。
答案 1 :(得分: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
}
}
此外,非常重要,我不得不升级到Scala 2.1X的ScalaFX 1.0.0。 M4 。
我没有让单元格可编辑,所以我会尝试一下,让你知道它是怎么回事。