2017-04-20 124 views
0

我的JavaFX TreeTableView出现问题。在一个案例中,我有> 100列,这里的问题是最糟糕的。我正在使用JDK 8u121x64。JavaFX TreeTableView计算滚动条错误

当有很多列时,滚动条计算错误,并且最后一列被切割为。这是一个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

这是JDK8,一个问题,即,因为我可以看到在JDK9 EA构建了预期的结果 你应该文件问题与Java - 的快速反应http://bugreport.java.com/submit_intro.do

enter image description here

+0

感谢 - 会这样做。 – Rainer

+0

一旦你提出这个问题,让我知道我会跟进的Java事件ID ... – Fairoz

+0

当然,你知道一个简单的为什么得到我的Windows系统上的J9 ea(没有“安装”它,这将覆盖系统java) – Rainer