gpt4 book ai didi

java - 修改TableView javafx中显示前的值

转载 作者:行者123 更新时间:2023-12-02 12:12:12 24 4
gpt4 key购买 nike

Controller 代码

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

我想在表格 View 中显示之前对数据进行一些操作

喜欢 Swing

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

在 Swing 中,我确实喜欢这个,而且效果非常好。

但不知道如何在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...));
}

};
}

}

...然后在您想要在表格 View 中显示日期的任何地方使用它:

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

关于java - 修改TableView javafx中显示前的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46464391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com