这个问题在这里已经有答案了:
javafx tableview未在所有列中显示数据(2个答案)
访问javafx tableview/tablecolumn中的嵌套属性(1个答案)
昨天关门了。
我没有成功地用数据填充tableview,尽管我以前用完全相同的方法(在我看来……)管理它。
(顺便问一下:有没有一种方法可以在一列中显示一个对象,而不是我在tableview中呈现的类中引用的对象(比如favoritebook),而是这个对象的属性对象(比如favoritebook的标题)?谢谢!)
我的主要课程:
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
import java.util.ArrayList;
public class Main extends Application {
Student student1 = new Student(0, "Jennifer", new Book("JavaFX for Dummies"));
Student student2 = new Student(1, "John", new Book("Cooking with Jamie Oliver"));
Student student3 = new Student(2, "Barbara", new Book("Jokes from Germany"));
ObservableList<Student> studentsObservable = FXCollections.observableArrayList(student1, student2, student3);
public static void main (String[] args) {
launch (args);
}
public void start (Stage primaryStage) throws Exception {
TableColumn<Student, Integer> idCol = new TableColumn<>("id");
TableColumn<Student, String> nameCol = new TableColumn<>("name");;
TableColumn<Student, Book> favoriteBookCol = new TableColumn<>("favoriteBook");;
TableView tableView = new TableView();
tableView.getColumns().setAll(idCol, nameCol, favoriteBookCol);
idCol.setCellValueFactory(new PropertyValueFactory<>("id"));
nameCol.setCellValueFactory(new PropertyValueFactory<>("name"));
favoriteBookCol.setCellValueFactory(new PropertyValueFactory<>("favoriteBook"));
tableView.setItems(studentsObservable);
HBox root = new HBox();
root.getChildren().add(tableView);
Scene scene = new Scene (root);
primaryStage.setScene(scene);
primaryStage.show();
}
}
课程包括学生和书本:
public class Student {
Integer id;
String name;
Book favoriteBook;
public Student (Integer id, String name, Book favoriteBook) {
this.id = id;
this.name = name;
this.favoriteBook = favoriteBook;
}
}
public class Book {
String title;
public Book (String title) {
this.title = title;
}
}
非常感谢您的努力和时间!
暂无答案!
目前还没有任何答案,快来回答吧!