【发布时间】:2017-04-20 13:16:01
【问题描述】:
我的 JavaFX TreeTableView 有问题。在一种情况下,我有 > 100 列,这里的问题是最糟糕的。我正在使用 JDK 8u121x64。
当有很多列时,滚动条计算错误并剪切最后一列。这是一个SSCCE
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeTableColumn;
import javafx.scene.control.TreeTableView;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class TreeTableViewScroll extends Application {
public static void main(final String[] args) {
launch(args);
}
@Override
public void start(final Stage primaryStage) throws Exception {
final Scene scene = createScene();
primaryStage.setTitle("Tree Table View Scroll");
primaryStage.setScene(scene);
primaryStage.show();
}
private Scene createScene() {
final VBox vBox = new VBox();
vBox.setPadding(new Insets(5));
vBox.setSpacing(5);
final TreeTableView<String> resultsTable = new TreeTableView<>();
resultsTable.setShowRoot(false);
final TreeItem<String> rootItem = new TreeItem<>();
resultsTable.setRoot(rootItem);
for (int i = 0; i < 200; i++) {
final TreeTableColumn<String, String> dummyColumn = new TreeTableColumn<>("Long Column name " + i);
resultsTable.getColumns().add(dummyColumn);
}
final TreeTableColumn<String, String> nameColumn = new TreeTableColumn<>("Name_very long column text");
resultsTable.getColumns().add(nameColumn);
vBox.getChildren().setAll(resultsTable);
VBox.setVgrow(resultsTable, Priority.ALWAYS);
vBox.setPrefSize(800, 600);
for (int i = 0; i < 50; i++) {
final TreeItem<String> newItem = new TreeItem<>("Text " + i);
rootItem.getChildren().add(newItem);
newItem.getChildren().add(new TreeItem<>("Text " + i));
}
return new Scene(vBox);
}
}
我错过了什么?或者这是一个框架错误?如果,我在哪里提交错误?
【问题讨论】: