0
我有一个FXML文件看起来像这样:FXML的tableview只显示空白行
<GridPane alignment="CENTER" hgap="10.0" vgap="10.0"
xmlns:fx="http://javafx.com/fxml"
fx:controller="GUI.Controller">
<padding>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
</padding>
<HBox spacing="10" alignment="bottom_right"
GridPane.columnIndex="1" GridPane.rowIndex="4">
<Button text="Sign In"
onAction="#handleSubmitButtonAction"/>
</HBox>
<TableView fx:id="tableView" GridPane.columnIndex="0" GridPane.rowIndex="0">
<columns>
<TableColumn fx:id="nameColumn" text="Event Name">
</TableColumn>
</columns>
</TableView>
和控制器类是这样的:
public class Controller implements Initializable {
@FXML
private TableView<String> tableView;
@FXML
private TableColumn<String, String> nameColumn;
@FXML
private ObservableList <String> dataArray;
@Override
public void initialize(URL location, ResourceBundle resources) {
dataArray = FXCollections.observableArrayList();
nameColumn.setCellValueFactory(
new PropertyValueFactory<String, String>("nameColumn")
);
dataArray.add("hello");
dataArray.add("goodbye");
tableView.setItems(dataArray);
}
当我运行此,我得到两列(不知道为什么 - 一个被称为“事件名称”,另一个是空白)和两行,但行是空白的。您可以点击行,但其中没有数据。当我从代码中删除“hello”条目或“goodbye”条目时,表格只显示一个空白行而不是两个。
我是新来的Java,并不完全确定为什么会发生这种情况。他们为什么显示行,但数据不显示?
您需要了解如何使用该工具包。由于'String'没有'nameColumnProperty()'或'getNameColumn()'方法,所以如果你在表中的每一行都使用String,那么你的单元格值工厂将不起作用。查看表格视图的教程:很多人喜欢[this one](http://code.makery.ch/library/javafx-8-tutorial/) –