【问题标题】:JavaFX TreeTableView calculating scrollbar wrongJavaFX TreeTableView计算滚动条错误
【发布时间】: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);
    }
}

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

【问题讨论】:

    标签: java javafx-8


    【解决方案1】:

    这是 JDK8 中的一个问题,我可以在 JDK9 ea build 中看到预期的结果 你应该用 java 提出问题 - http://bugreport.java.com/submit_intro.do

    【讨论】:

    • 当然,你知道为什么要在我的 Windows 系统上安装 J9 ea(不“安装”它,这会覆盖系统 java)
    • @Rainer 大概,如果它已在 Java 9 中修复,那么它已经被归档(并且,好吧,已修复)。因此,您至少应该在提交之前搜索现有的错误报告。 (不太可能将任何修复程序向后移植到 Java 8,因此在此阶段可能不值得提交。)
    • @James_D 你是对的 - 但我找不到错误 - 我真的搜索了错误数据库。所以这里是重复的 -.- JDK-8179061
    • No JDK-8179061 是昨天提交的。事实上存在重复错误bugs.openjdk.java.net/browse/JDK-8163943。 JDK-8179061 还没有关闭,让我们拭目以待,看看它是否被向后移植到 8。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 1970-01-01
    • 2015-05-10
    相关资源
    最近更新 更多