2017-09-28 69 views
1

控制器代碼的值修改在TableView中的JavaFX

@Override 

public void initialize(URL url, ResourceBundle rb) { 

    try { 
      Connection con = db.connect(); 

      list = FXCollections.observableArrayList(); 
      ResultSet rs = con.createStatement().executeQuery("Select * from Student"); 
      while (rs.next()) { 
       list.add(new Student(rs.getInt(1), rs.getString(2),new java.util.Date(rs.getDate(3).getTime()))); 

      } 
     } catch (SQLException ex) { 
      Logger.getLogger(DisplayAllStudentController.class.getName()).log(Level.SEVERE, null, ex); 
     } 

    studentID.setCellValueFactory(new PropertyValueFactory<>("studentID")); 

    name.setCellValueFactory(new PropertyValueFactory<>("name")); 

    admissionDate.setCellValueFactory(new PropertyValueFactory<>("admissionDate")) 

    tableView.setItems(null); 

    tableView.setItems(list); 

我想要做在表瀏覽顯示之前的數據生成一些操作

LIKE SWING

tableRow[3] = DateConverter.toString(c.getAdmissionDate()); 

在擺動我做像這樣,它的工作完美。

但不知道如何對tableview javafx進行操作。

+1

告訴我們什麼是當前行爲,你想要實現的結果是什麼? – Suncatcher

+0

我想執行數據庫值的一些操作,然後在字段1中樹狀表例如數據庫值顯示爲:100和我想改變值200(這種變化不是在數據庫/臨時改變值保存),然後顯示新的修改在treetable價值。 – kar

回答

1

您可能需要將CellFactory添加到給定列(不要與CellValueFactory混合使用)。你不提你想要什麼數據到底該怎麼做,但如果你想以自己的方式來格式化日期字符串,你可以寫一個類,如:

public class LocalDateCellFactory<T> implements Callback<TableColumn<T, LocalDate>, TableCell<T, LocalDate>> { 

    @Override 
    public TableCell<T, LocalDate> call(TableColumn<T, LocalDate> col) { 
     return new TableCell<T, LocalDate>() { 

      @Override 
      protected void updateItem(LocalDate item, boolean empty) { 
       super.updateItem(item, empty); 
       if ((item == null) || empty) { 
        setText(null); 
        return; 
       } 

       setText(item.format(...yourOwnFormat...)); 
      } 

     }; 
    } 

} 

...,然後只用它在任何地方你想在桌面視圖中顯示日期:

admissionDate.setCellFactory(new LocalDateCellFactory<>()); 
+0

假設對於lastBillPayed日期我有兩個表格列1,另一個用於金額。 (金額基於當前日期MINUS lastBillPayed日期)然後分配第二個項目的總計算金額 – kar

+0

這聽起來像是一個新問題,而不是對原始問題的評論。在這種情況下,請接受答案並將其作爲一個新問題發佈。 (在評論中發佈代碼示例很難)。當你這樣做時,請嘗試更精確地指定問題。我明白你想達到什麼,但我不太明白,問題是什麼?發佈一個示例代碼並告訴我們,哪裏有問題,哪些方面無法解決,因此我們可以提供幫助。 – tomorrow

+0

明天請幫我檢查我的這個問題https://stackoverflow.com/questions/46551764/tableview-how-to-get-and-set-value-in-column – kar