【发布时间】:2016-12-17 13:51:26
【问题描述】:
我对编码完全陌生,并且被一些“绑定”代码所困扰。我有一个带有 getter 和 setter 的 Record 类,以及一个 Records Observable 列表,它们一起在一个名为 RecordController 的控制器中填充一个 Tableview。我想在一个单独的 AdminController 文件上填充另一个 tableview,它们都具有不同的视图 fxml。
如何在我的 Record.java 类中绑定 SimpleStringProperties,这样当它们通过 RecordContoller 中的 set 方法(通过任何 UI 用户交互)更新时,AdminController 中的(editatble)Tableview 被填充使用新值。
部分代码.....
public class Record {
private final SimpleStringProperty stationName;
private final SimpleStringProperty staffName;
private final SimpleStringProperty staffNumber;
private final SimpleStringProperty agencyName;
private final SimpleStringProperty aircraftType;
private final SimpleStringProperty issueDate;
private final SimpleStringProperty validTill;
public Record(String stationName, String staffName,
String staffNumber, String agencyName, String aircraftType,
String issueDate, String validTill) {
this.stationName = new SimpleStringProperty(stationName);
this.staffName = new SimpleStringProperty(staffName);
this.staffNumber = new SimpleStringProperty(staffNumber);
this.aircraftType = new SimpleStringProperty(aircraftType);
this.agencyName = new SimpleStringProperty(agencyName);
this.issueDate = new SimpleStringProperty(issueDate);
this.validTill = new SimpleStringProperty(validTill);
}
public String getStationName() {
return stationName.getValue();
}
public String getStaffName() {
return staffName.getValue();
}
public String getStaffNumber() {
return staffNumber.getValue();
}
public String getAgencyName() {
return agencyName.getValue();
}
public String getAircraftType() {
return aircraftType.getValue();
}
public String getIssueDate() {
return issueDate.getValue();
}
public String getValidTill() {
return validTill.getValue();
}
}
还有带有第一个 Tableview 的 RecordController .....
columnStation.setCellValueFactory(new PropertyValueFactory<>("stationName"));
columnStaffName.setCellValueFactory(new PropertyValueFactory<>("staffName"));
columnStaffNumber.setCellValueFactory(new PropertyValueFactory<>("staffNumber"));
columnAgency.setCellValueFactory(new PropertyValueFactory<>("agencyName"));
columnAircraftType.setCellValueFactory(new PropertyValueFactory<>("aircraftType"));
columnIssueDate.setCellValueFactory(new PropertyValueFactory<>("issueDate"));
columnValidTill.setCellValueFactory(new PropertyValueFactory<>("validTill"));
recordTableView.setItems(null);
recordTableView.setItems(records);
记录可观察列表是.....
private ObservableList<Record> records=FXCollections.observableArrayList();
另一个 fxml 的 adminController 也有另一个 tableview,我想用 Record.java 中的属性变量(类/bean?)以某种方式填充它。
【问题讨论】:
标签: javafx properties binding tableview