修改在TableView中的JavaFX

问题描述:

控制器代码的值修改在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

您可能需要将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://*.com/questions/46551764/tableview-how-to-get-and-set-value-in-column – kar