当前位置: 首页 > 知识库问答 >
问题:

在TableView javafx中显示之前修改值

韩善
2023-03-14

控制器代码

@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上进行操作。

共有1个答案

燕经国
2023-03-14

您可能需要在给定列中添加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<>());
 类似资料:
  • 这段代码我懂。我们复制a并称之为C。当a被改变时,C保持不变 但是当A是一个数组时,我们有一个不同的判断。不仅C会改变,它甚至在我们接触A之前就改变了 有人能解释一下第二个例子中发生了什么吗?

  • 在使用特定的“look and feel”时,是否有一种简单的方法来更改JSlider上方标签中显示的值? 明确一点,我说的是这个值: 具体地说,我想展示的是除以1000的值,而不是值本身。 考虑到JSlider不支持Double,这似乎是一个明显的问题。

  • 问题内容: 我有一个简单的jquery代码,用ajax在jQuery模态窗口中发送内容!一切正常,没有任何问题。通常,单击发送按钮后,此代码会在1-2秒后显示结果, 我的问题是,如何在单击“发送”之后显示结果之前添加并显示加载图片? 问题答案: 您可以通过 和 要么

  • 问题内容: 我了解的这段代码。我们复制A并将其称为C。当A更改时,C保持不变 但是当A是一个数组时,我们会有不同的情景。C不仅会改变,而且甚至在我们碰到A之前都会改变 有人可以解释第二个示例中发生的情况吗? 问题答案: Pointy的答案有很好的信息,但这不是此问题的正确答案。 OP所描述的行为是一个错误的一部分,该错误于2010年3月首次报告,并于2012年8月为Webkit进行了修补,但截至本

  • 相信如果大家看了《电脑报》第15期《如何修改BIOS里“能源之星”LOGO》后,对修改BIOS的升级文件已经有点经验了吧!顺着这个方向,这次我们来看看如何再进一步修改里面的提示信息吧! 有了上次的经验,相信大家对CBROM这个软件也略知一二了,不知道大家留意到它的那个MIB参数没有,经过我的研究,其实这个MIB就是英文MenuIn Bios的缩写。看单词大家应该明白是什么意思了吧,没错,就是在BI

  • 修订版本号(revision)是一组SHA-1值,我们可以通过SHA-1值来获取对应的那一次提交. tips: SHA-1是散列函数加密算法, 输出的散列值为40位十六进制数字串,可用于验证信息的一致性,防止被篡改. android studio中显示当前修订版本的操作步骤是: 右击某一个文件或在文件编辑区右击 —> Git —> Show Current Revision 或者点击菜单栏 —>