我正在尝试遵循此 JavaFX 2 指南:
http://docs.oracle.com/javafx/2/ui_controls/table-view.htm#CJAGAAEE
我使用 Scala 而不是 Java,对我来说它看起来像这样:
<TableView fx:id="test">
<columns>
<TableColumn prefWidth="75.0" text="Message" />
</columns>
</TableView>
和代码:
val c = test.getColumns.get(0) // Get the first column.
c.setCellValueFactory(new PropertyValueFactory[Foo, _]("message")) // Foo is my model with a single SimpleStringProperty called "message".
val observableFoos = FXCollections.observableList(foos)
test.setItems(observableFoos)
我遇到的问题是该setCellValueFactory
行导致:
错误:需要类类型但 javafx.scene.control.cell.PropertyValueFactory[com.myapp.models.Foo, _] 找到 c.setCellValueFactory(new PropertyValueFactoryFoo, _)
我不明白我应该如何使用这种方法。如果我用 替换_
,String
那么我得到:
错误:类型不匹配;找到:javafx.scene.control.cell.PropertyValueFactory[com.myapp.models.Foo,String] 需要:javafx.util.Callback[javafx.scene.control.TableColumn.CellDataFeatures[com.myapp.models.Foo,?0 ],javafx.beans.value.ObservableValue[?0]] where type ?0 c.setCellValueFactory(new PropertyValueFactoryFoo, String)
如果我删除该行,我可以确认一切正常setCellValueFactory
——我只是在表格中看不到任何内容——只是空白行。