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

标签 java javafx view tree

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/

相关文章:

android - 有意传递 View

java - 将对象数组转换为 Long 数组时发生 ClassCastException

java - 如何以编程方式管理应用程序缓存? (退出应用程序后清除)

java - 检测文本内容是否有CDATA

javascript - JavaFX:当我们构建 html 并将链接放在 header 中时,我们的 javascript 文件不起作用。为什么是这样?

Java - 选择复选框时的错误操作

android - 如何将 View 添加到 XML 布局 android

mysql - 在 Mysql 存储过程的 View 上使用 where 子句不会产生任何结果,但表会产生结果

java - 端口转发多播 IP

css - 设置图像的背景半径