我的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);
}
}
我错过了什么?或者这是一个框架错误?如果,我在哪里提交错误?
答案 0 :(得分:1)
这是JDK8中的一个问题,因为我可以看到JDK9 ea版本中的预期结果 您应该向java提交问题 - http://bugreport.java.com/submit_intro.do