java - Java TableView 不只填充一列
问题描述
我似乎无法填充我的表视图列之一。有问题的专栏是我的“complianceReq”。这很奇怪,因为如果我将“brandName”换成“complianceReq”,它将正确显示品牌名称信息。但是,我似乎无法显示“complianceReq”。我尝试同时使用布尔值和字符串版本,但均未成功。
我可以确认变量确实有真/假或是/否,具体取决于我正在尝试的版本。
我还可以看到 Getter 方法也没有被调用。
我正在使用的类的代码在这里:https://pastebin.com/gswutwk0
这是我的控制器类:
private DBReader dbr;
@FXML
public TableView<JobSummaryData> tblView;
@FXML
public void updateTable() {
ObservableList<JobSummaryData> obLst = FXCollections.observableArrayList(dbr.getJobSummary());
tblView.getColumns().clear();
tblView.setItems(obLst);
TableColumn<JobSummaryData,Integer> colJobItem = new TableColumn<JobSummaryData,Integer>("Job Item Id");
colJobItem.setCellValueFactory(new PropertyValueFactory<JobSummaryData,Integer>("jobItemId"));
TableColumn<JobSummaryData,String> colBrandName = new TableColumn<JobSummaryData,String>("Brand Name");
colBrandName.setCellValueFactory(new PropertyValueFactory<JobSummaryData,String>("brandName"));
TableColumn<JobSummaryData,String> colCompliance = new TableColumn<JobSummaryData,String>("Compliance Required");
colCompliance.setCellValueFactory(new PropertyValueFactory<JobSummaryData,String>("complianceReq"));
TableColumn<JobSummaryData,String> colLink = new TableColumn<JobSummaryData,String>("Survey Link");
colLink.setCellValueFactory(new PropertyValueFactory<JobSummaryData,String>("surveyLink"));
tblView.getColumns().addAll(colJobItem, colBrandName, colCompliance, colLink);
}
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
dbr = new DBReader();
}
这是我的 JobSummaryData 类:
private int jobItemId, submittedMinutes;
private String brandName, storeId, storeName, storeLocation, jobType, status, merchandiserName, agentNumber, areaManagerName, uncompleteReason; //complianceReq
private String eMail, mobile, surveyLink; //TBA Pref contact method
private boolean complianceRequired;
private Date jobDate;
public JobSummaryData(ResultSet rs) throws SQLException {
jobItemId = rs.getInt("jobitemid");
submittedMinutes = rs.getInt("submittedminutes");
brandName = rs.getString("brandname");
storeId = rs.getString("storeid");
storeName = rs.getString("storename");
storeLocation = rs.getString("storelocation");
jobType = rs.getString("jobtype");
status = rs.getString("Status");
merchandiserName = rs.getString("merchandisername");
agentNumber = rs.getString("agentnumber");
areaManagerName = rs.getString("areamanagername");
uncompleteReason = rs.getString("uncompletereason");
eMail = rs.getString("Email");
mobile = rs.getString("Mobile");
surveyLink = rs.getString("SurveyLink");
complianceRequired = rs.getBoolean("ComplianceRequired");
/*if(rs.getBoolean("ComplianceRequired")) {
complianceReq = "Yes";
}
else {
complianceReq = "No";
}*/
jobDate = rs.getDate("jobdate");
}
public int getJobItemId() {return jobItemId;}
public int getSubmittedMins() {return submittedMinutes;}
public String getBrandName() {return brandName;}
public String getStoreId() {return storeId;}
public String getStoreName() {return storeName;}
public String getStoreLocation() {return storeLocation;}
public String getJobType() {return jobType;}
public String getJobStatus() {return status;}
public String getMerchName() {return merchandiserName;}
public String getAgentNum() {return agentNumber;}
public String getAreaManagerNum() {return areaManagerName;}
public String getUncompReason() {return uncompleteReason;}
public String getEMail() {return eMail;}
public String getMobile() {return mobile;}
public String getSurveyLink() {return surveyLink;}
//public String getComplianceRequired() {return complianceReq;}
public boolean getComplianceBool() {return complianceRequired;}
public Date getJobDate() {return jobDate;}
我错过了什么?谢谢
解决方案
你传递"complianceReq"
给了,PropertyValueFactory
但你的类中没有getComplianceReq()
方法JobSummaryData
。该类PropertyValueFactory
要求 getter 和 setter 遵循 Java Bean 命名约定。
将单元格值工厂更改为:
colCompliance.setCellValueFactory(new PropertyValueFactory<>("complianceRequired"));
或将您班级中的吸气剂更改JobSummaryData
为:
public String getComplianceReq() { return complianceReq; }
如果您曾经为您的JobSummaryData
类实现过 JavaFX 属性,请不要忘记添加正确命名的 property-getter — <code>complianceRequiredProperty() 或complianceReqProperty()
,具体取决于。
推荐阅读
- angular - concatMap 可观察对象数组
- asynchronous - 离子幻灯片不适用于等待/异步
- python - 在熊猫中切片时保持数据框形状
- linux - echo 1 > /sys/devices/system/cpu/cpu3/online 写入错误
- python - 如何在元素开始时在xml子元素中添加注释
- python - 电话号码查找程序:(索引)和while循环
- git - 如何更新本地 git pull-request?
- reactjs - 如何使用antd隐藏表格的某一列?
- android - 照片捕获失败完成者对象已被垃圾收集,否则未来将永远无法完成
- r - 使用光栅包中的砖块函数提取大于 4 维的 NetCDF 变量