У меня есть 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);
}
Когда я запускаю это я получить два столбца (не знаю, почему - одно называется «Имя события», а другое пустое) и две строки, но строки пустые. Вы можете щелкнуть по строкам, но в них нет данных. Когда я удаляю запись «привет» или «прощай» из кода, таблица просто отображает одну пустую строку вместо двух.
Я новичок в Java и не совсем уверен, почему это происходит. Почему появляются строки, но данные не отображаются?
Вам необходимо научиться использовать инструментарий. Заводская фабрика значений не будет работать, если вы используете 'String' для каждой строки в таблице, так как 'String' не имеет метода' nameColumnProperty() 'или' getNameColumn() '. Посмотрите на учебное пособие для табличного представления: многие люди, такие как [этот] (http://code.makery.ch/library/javafx-8-tutorial/) –