Дата не отображается в TableView - PullRequest
0 голосов
/ 11 июля 2020

У меня 6 столбцов в sql серверной таблице 5 из них отображаются в TableView, 6 в формате даты, который не отображается, нет никаких ошибок, показывающих что-либо.

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);

Пожалуйста, помогите мне в этом. Я пытался в течение 2 дней и до сих пор не нашел решения. Спасибо

Ответы [ 2 ]

0 голосов
/ 12 июля 2020

Проблема решена. Я изменил 2 вещи в своем коде. Сначала измените LocalDate на String. Затем rs.getDate ("P_addedDate"). ToLocalDate () измените его на rs.getDate ("P_addedDate"). ToString (); это решило мою проблему, подумал, что это может помочь кому-то другому.

0 голосов
/ 12 июля 2020

Я не вижу 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));
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...