java - JavaFX 表不显示数据
问题描述
我正在按照本教程编写 JavaFX 代码来填充和显示表中的记录。记录可以是多条,记录是 LibraryMember 类的对象(如下提供),但表格不显示记录。请弄清楚我的代码有什么问题?
private TableView<LibraryMember> table;
public ObservableList<LibraryMember> allMemberDataRecords = list;
/*
The data in the above list is in the following format:
[Member Info: ID: 1004, name: Ricardo Montalbahn, 641-472-2871 (501 Central, Mountain View, 94707), Member Info: ID: 1003, name: Sarah Eagleton, 451-234-8811 (42 Dogwood Dr., Fairfield, 52556), Member Info: ID: 1002, name: Drew Stevens, 702-998-2414 (1435 Channing Ave, Palo Alto, 94301), Member Info: ID: 1001, name: Andy Rogers, 641-223-2211 (5001 Venice Dr., Los Angeles, 93736)]
*/
table = new TableView();
table.setEditable(true);
TableColumn idCol = new TableColumn("Member Id");
idCol.setCellValueFactory(new PropertyValueFactory<LibraryMember, String>("memberId"));
TableColumn firstNameCol = new TableColumn("First Name");
firstNameCol.setCellValueFactory(new PropertyValueFactory<LibraryMember, String>("firstName"));
TableColumn lastNameCol = new TableColumn("Last Name");
lastNameCol.setCellValueFactory(new PropertyValueFactory<LibraryMember, String>("lastName"));
TableColumn streetCol = new TableColumn("Street");
lastNameCol.setCellValueFactory(new PropertyValueFactory<LibraryMember, String>("lastName"));
TableColumn cityCol = new TableColumn("City");
cityCol.setCellValueFactory(new PropertyValueFactory<LibraryMember, String>("city"));
TableColumn stateCol = new TableColumn("State");
stateCol.setCellValueFactory(new PropertyValueFactory<LibraryMember, String>("state"));
TableColumn zipCol = new TableColumn("Zip");
zipCol.setCellValueFactory(new PropertyValueFactory<LibraryMember, String>("zip"));
TableColumn phoneCol = new TableColumn("Telephone");
phoneCol.setCellValueFactory(new PropertyValueFactory<LibraryMember, String>("telephone"));
table.setItems(allMemberDataRecords);
table.getColumns().addAll(idCol, firstNameCol, lastNameCol, streetCol, cityCol, stateCol, zipCol, phoneCol);
final VBox vbox = new VBox();
vbox.setSpacing(5);
vbox.getChildren().add(table);
grid.add(vbox, 0, 1);
Scene scene = new Scene(grid);
scene.getStylesheets().add(getClass().getResource("library.css").toExternalForm());
setScene(scene);
图书馆会员类:
package business;
import java.io.Serializable;
import java.time.LocalDate;
import dataaccess.DataAccess;
import dataaccess.DataAccessFacade;
final public class LibraryMember extends Person implements Serializable {
private String memberId;
public LibraryMember(String memberId, String fname, String lname, String tel,Address add) {
super(fname,lname, tel, add);
this.memberId = memberId;
}
public String getMemberId() {
return memberId;
}
@Override
public String toString() {
return "Member Info: " + "ID: " + memberId + ", name: " + getFirstName() + " " + getLastName() +
", " + getTelephone() + " " + getAddress();
}
private static final long serialVersionUID = -2226197306790714013L;
}