@stanford_mosciski
В JavaFX вы можете заполнить TableView с помощью связывания данных. Для этого вам нужно создать класс-модель данных, унаследованный от javafx.beans.property.SimpleObjectProperty, который будет содержать нужные вам данные.
Затем вы создаете список этих объектов модели и устанавливаете его в качестве источника данных для TableView с помощью метода setItems.
Наконец, вы должны установить столбцы таблицы и указать, какие поля из объекта модели данных следует отображать в каждом столбце. Для этого вам нужно создать экземпляры TableColumn и установить фабрику ячеек, которая будет генерировать ячейки на основе данных из модели.
Вот пример кода, который демонстрирует, как это может быть сделано:
1 2 3 4 5 |
import javafx.beans.property.SimpleStringProperty; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.control.TableColumn; import javafx.scene.control. |
@stanford_mosciski
TableView; import javafx.scene.control.cell.PropertyValueFactory;
public class TableViewExample extends Application {
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
private final ObservableList<Person> data =
FXCollections.observableArrayList(
new Person("John", "Doe"),
new Person("Jane", "Smith"),
new Person("Bob", "Johnson")
);
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
TableView<Person> table = new TableView<>();
table.setItems(data);
TableColumn<Person, String> firstNameCol = new TableColumn<>("First Name");
firstNameCol.setCellValueFactory(new PropertyValueFactory<>("firstName"));
TableColumn<Person, String> lastNameCol = new TableColumn<>("Last Name");
lastNameCol.setCellValueFactory(new PropertyValueFactory<>("lastName"));
table.getColumns().addAll(firstNameCol, lastNameCol);
primaryStage.setScene(new Scene(table, 300, 200));
primaryStage.show();
}
public static class Person {
private final SimpleStringProperty firstName;
private final SimpleStringProperty lastName;
public Person(String firstName, String lastName) {
this.firstName = new SimpleStringProperty(firstName);
this.lastName = new SimpleStringProperty(lastName);
}
public String getFirstName() {
return firstName.get();
}
public void setFirstName(String firstName) {
this.firstName.set(firstName);
}
public StringProperty firstNameProperty() {
return firstName;
}
public String getLastName() {
return lastName.get();
}
public void setLastName(String lastName) {
this.lastName.set(lastName);
}
public StringProperty lastNameProperty() {
return lastName;
}
}
|
}
В этом примере мы создаем класс Person, который содержит два поля - firstName и lastName. Затем мы создаем TableView и устанавливаем список объектов Person в качестве источника данных. Затем мы создаем два TableColumn, один для firstName и один для lastName, и устанавливаем значения свойств ячеек каждого столбца. Наконец, мы добавляем столбцы в TableView и отображаем их на сцене.
Это минимальный пример для заполнения TableView в JavaFX. Вы можете расширить его, добавив дополнительные столбцы или свойства в класс Person, а также используя различные типы ячеек для разных столбцов.