拖动时增加 TableRow 的高度

Increase Height of TableRow on Drag

我正在通过 SceneBuilder 开发 JavaFX 应用程序,我正在尝试向 TableView 添加功能。我当前的任务是允许用户拖动并增加拖动时每个 TableRow 的高度。本质上,我试图让它像 Excel.

一样工作

Java代码

    tv.setRowFactory(t -> {

        TableRow tr = new TableRow();
        tr.setPrefHeight(54);

        tr.setOnMouseDragged(event -> {
            tr.setMinHeight(event.getY());
        });

        return tr;

    });

我在拖动时测试了 getY() 函数,发现它随着我在屏幕上向下移动而不断递增。

我试图寻找一种方法来做到这一点,但我找不到任何线索。如果您有 link 一些关于所需方法的文档,那也很好。

另外,如果 SceneBuilder 有一个允许在 TableView 中使用此功能的内置方法,那也可能有效。

尝试以下操作:

table.setRowFactory(t -> {
            final TableRow tr = new TableRow();
            final double prefHeight = 54;
            tr.setPrefHeight(prefHeight);

            tr.setOnMouseDragged(event -> {
                final double newHeight = event.getY();
                if(newHeight < prefHeight) {
                    return;
                }
                tr.setPrefHeight(newHeight);
                tr.autosize();
            });

            return tr;

        });