控制器代码
@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);
我想在表格视图中显示之前对数据进行一些操作
喜欢摇摆
tableRow[3] = DateConverter.toString(c.getAdmissionDate());
在摇摆中,我确实喜欢这样,并且效果很好。
但不知道如何在tableview javafx上进行操作。
答案 0 :(得分: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...));
}
};
}
}
...然后只需在任何想要在tableview中显示日期的地方使用它:
admissionDate.setCellFactory(new LocalDateCellFactory<>());