修改在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进行操作。
您可能需要将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<>());
假设对于lastBillPayed日期我有两个表格列1,另一个用于金额。 (金额基于当前日期MINUS lastBillPayed日期)然后分配第二个项目的总计算金额 – kar
这听起来像是一个新问题,而不是对原始问题的评论。在这种情况下,请接受答案并将其作为一个新问题发布。 (在评论中发布代码示例很难)。当你这样做时,请尝试更精确地指定问题。我明白你想达到什么,但我不太明白,问题是什么?发布一个示例代码并告诉我们,哪里有问题,哪些方面无法解决,因此我们可以提供帮助。 – tomorrow
明天请帮我检查我的这个问题https://*.com/questions/46551764/tableview-how-to-get-and-set-value-in-column – kar
告诉我们什么是当前行为,你想要实现的结果是什么? – Suncatcher
我想执行数据库值的一些操作,然后在字段1中树状表例如数据库值显示为:100和我想改变值200(这种变化不是在数据库/临时改变值保存),然后显示新的修改在treetable价值。 – kar