JavaFX TreeTableView计算滚动条错误

时间:2017-04-20 13:16:02

标签: java javafx-8

我的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);
    }
}

我错过了什么?或者这是一个框架错误?如果,我在哪里提交错误?

Screenshot of the

1 个答案:

答案 0 :(得分:1)

这是JDK8中的一个问题,因为我可以看到JDK9 ea版本中的预期结果 您应该向java提交问题 - http://bugreport.java.com/submit_intro.do

enter image description here