日期未显示在TableView中



我在sql server表中有6列,其中5列显示在TableView中,6列是未显示的Date格式,显示任何内容都没有错误。

public class PTable {
String P_total,P_sold,P_correct,P_remaining,P_faulty;
LocalDate P_addedDate;
public PTable(String P_total,String P_sold,String P_correct,String P_remaining,String P_faulty,LocalDate P_addedDate){
this.P_total=P_total;
this.P_sold = P_sold;
this.P_correct=P_correct;
this.P_remaining=P_remaining;
this.P_faulty=P_faulty;
this.P_addedDate=P_addedDate;
}
public String getP_total(){
return P_total;
}
public void setP_total(String P_total){
this.P_total=P_total;
}
public String getP_sold(){
return P_sold;
}
public void setP_sold(String P_sold){
this.P_sold=P_sold;
}
public String getP_correct(){
return P_correct;
}
public void setP_correct(String P_correct){
this.P_correct=P_correct;
}
public String getP_remaining(){
return P_remaining;
}
public void setP_remaining(String P_remaining){
this.P_remaining=P_remaining;
}
public String getP_faulty(){
return P_faulty;
}
public void setP_faulty(String P_faulty){
this.P_faulty=P_faulty;
}
public LocalDate getP_addedDate(){
return P_addedDate;
}
public void setP_addedDate(LocalDate P_addedDate){
this.P_addedDate=P_addedDate;
}
}

我的控制器类::

ObservableList<PTable> ob = FXCollections.observableArrayList();
ResultSet rs = conn.createStatement().executeQuery("select * from Products");
while(rs.next()){
ob.add(new PTable(rs.getString("P_total"),rs.getString("P_sold"),rs.getString("P_correct"),rs.getString("P_remaining"),rs.getString("P_faulty"),rs.getDate("P_addedDate").toLocalDate()));
}
TProduct_cln.setCellValueFactory(new PropertyValueFactory<PTable , String>("P_total"));
SProduct_cln.setCellValueFactory(new PropertyValueFactory<PTable , String>("P_sold"));
CProduct_col.setCellValueFactory(new PropertyValueFactory<PTable , String>("P_correct"));
RProduct_cln.setCellValueFactory(new PropertyValueFactory<PTable , String>("P_remaining"));
FProduct_cln.setCellValueFactory(new PropertyValueFactory<PTable , String>("P_faulty"));
date_cln.setCellValueFactory(new PropertyValueFactory<PTable , LocalDate>("P_addedDate"));
tbl_product.setItems(ob);

请帮我一下。我已经试了两天了,但仍然没有解决方案。感谢

我在您的代码中没有看到CellFactory。如果是这样的话,试试这个:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
date_cln.setCellFactory(column -> new TableCell<PTable, LocalDate>() {
@Override
protected void updateItem(LocalDate date, boolean empty) {
super.updateItem(date, empty);
if (empty) {
setText("");
} else {
setText(formatter.format(date));
}
}
});

问题解决了。我更改了代码中的两项内容首先将LocalDate更改为String。然后rs.getDate("P_addedDate"(.toLocalDate((将其更改为rs.getDate("P_addedDate&"(.toString((;它解决了我的问题,认为它可能会帮助其他人。

最新更新