拖动时增加 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;
});
我正在通过 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;
});