TableView не отображает данные - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь заставить это представление таблицы работать, но по какой-то причине, когда я запускаю программу, таблица пуста.Я сравнил его несколько раз с примером, приведенным в руководстве по Oracle и Youtube, но не могу понять, что мне не хватает.

Код компилируется без ошибок.Вот оно:

public class JavaFXcourseNewBoston extends Application {

Stage window;
TableView<Person> table;

public static void main(String[] args) {
    launch(args); // übernimmt den String args aus main      
}

@Override
public void start(Stage ersteStage) throws Exception {
    window = ersteStage;
    window.setTitle("Tables!");

    // public Person(String fName, String lName, int age)
    //TableColumn first name
    TableColumn<Person, String> fnameC = new TableColumn<>("Name");
    fnameC.setMinWidth(100);
    fnameC.setCellValueFactory(new PropertyValueFactory<>("fName"));

    //TableColumn last name 
    TableColumn<Person, String> lnameC = new TableColumn<>("Last Name");
    lnameC.setMinWidth(100);
    lnameC.setCellValueFactory(new PropertyValueFactory<>("lName"));

    //TableColumn age
    // WRAPPER NOT PRIMITIVE DATA TYPES!! 
    TableColumn<Person, Integer> ageC = new TableColumn<>("Age");
    ageC.setMinWidth(50);
    ageC.setCellValueFactory(new PropertyValueFactory<>("age"));

    table = new TableView<>();
    table.setItems(getP());
    table.getColumns().addAll( fnameC, lnameC, ageC); 

    VBox vbox = new VBox();
    vbox.getChildren().addAll(table);

    //initialize window
    Scene scene = new Scene(vbox, 300, 250);
    window.setScene(scene);
    window.show();
}

public ObservableList<Person> getP() {
    ObservableList<Person> persons = FXCollections.observableArrayList();
    persons.add(new Person("Lisa", "Simpson", 10));
    persons.add(new Person("Bart", "Simpson", 12));
    persons.add(new Person("Marge", "Simpson", 32));
    persons.add(new Person("Homer", "Simpson", 35));
    persons.add(new Person("Maggie", "Simpson", 2));

    return persons;
}

}// end class

И класс Person:

public class Person {

String fName;
String lName;
int age;

Person(String fName, String lName, int age) 
{
    this.fName = fName;
    this.lName = lName;
    this.age = age;                  
}
}

(я не писал никаких геттеров и сеттеров для Person, поскольку они здесь не нужны.)

Я пытался решить эту проблему в течение 2 часов (да, действительно) и был бы очень признателен за любую помощь.

...