JavaFX TreeTableView strings left while scrolling

I experimented with TreeTableView in JDK 8 . After I started working and working, I noticed a problem that when scrolling, the lines would be closed. I tried everything from resetting the cell visibility when it is updated, in the hope that it will redraw when it is updated or even reset the column visibility. Here is a test applet that I wrote to show that when you look at a view of a tree table, the rows are dull, but for a table view it is not.

 public class TableViewTest extends Application{ private TreeTableView treeTable = new TreeTableView(); private TableView regularTable = new TableView(); public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) throws Exception { final ObservableList<Person> data = FXCollections.observableArrayList( new Person("Jacob", "Smith", " jacob.smith@example.com "), new Person("Isabella", "Johnson", " isabella.johnson@example.com "), new Person("Ethan", "Williams", " ethan.williams@example.com "), new Person("Emma", "Jones", " emma.jones@example.com "), new Person("Michael", "Brown", " michael.brown@example.com "), new Person("Jacob", "Smith", " jacob.smith@example.com "), new Person("Isabella", "Johnson", " isabella.johnson@example.com "), new Person("Ethan", "Williams", " ethan.williams@example.com "), new Person("Emma", "Jones", " emma.jones@example.com "), new Person("Michael", "Brown", " michael.brown@example.com "), new Person("Jacob", "Smith", " jacob.smith@example.com "), new Person("Isabella", "Johnson", " isabella.johnson@example.com "), new Person("Ethan", "Williams", " ethan.williams@example.com "), new Person("Emma", "Jones", " emma.jones@example.com "), new Person("Michael", "Brown", " michael.brown@example.com "), new Person("Jacob", "Smith", " jacob.smith@example.com "), new Person("Isabella", "Johnson", " isabella.johnson@example.com "), new Person("Ethan", "Williams", " ethan.williams@example.com "), new Person("Emma", "Jones", " emma.jones@example.com "), new Person("Michael", "Brown", " michael.brown@example.com "), new Person("Jacob", "Smith", " jacob.smith@example.com "), new Person("Isabella", "Johnson", " isabella.johnson@example.com "), new Person("Ethan", "Williams", " ethan.williams@example.com "), new Person("Emma", "Jones", " emma.jones@example.com "), new Person("Michael", "Brown", " michael.brown@example.com "), new Person("Jacob", "Smith", " jacob.smith@example.com "), new Person("Isabella", "Johnson", " isabella.johnson@example.com "), new Person("Ethan", "Williams", " ethan.williams@example.com "), new Person("Emma", "Jones", " emma.jones@example.com "), new Person("Michael", "Brown", " michael.brown@example.com "), new Person("Jacob", "Smith", " jacob.smith@example.com "), new Person("Isabella", "Johnson", " isabella.johnson@example.com "), new Person("Ethan", "Williams", " ethan.williams@example.com "), new Person("Emma", "Jones", " emma.jones@example.com "), new Person("Michael", "Brown", " michael.brown@example.com "), new Person("Jacob", "Smith", " jacob.smith@example.com "), new Person("Isabella", "Johnson", " isabella.johnson@example.com "), new Person("Ethan", "Williams", " ethan.williams@example.com "), new Person("Emma", "Jones", " emma.jones@example.com "), new Person("Michael", "Brown", " michael.brown@example.com ") ); // REGULAR TABLE ------------------------------------------------------------------------- Scene tableScene = new Scene(new Group()); Stage tableStage = new Stage(); tableStage.setTitle("Table View Sample"); tableStage.setWidth(300); tableStage.setHeight(500); tableStage.show(); regularTable.getItems().addAll(data); regularTable.setEditable(true); TableColumn regularFirstNameCol = new TableColumn("First Name"); TableColumn regularLastNameCol = new TableColumn("Last Name"); TableColumn regularEmailCol = new TableColumn("Email"); regularFirstNameCol.setCellValueFactory(new PropertyValueFactory<Person, String>("firstName")); regularLastNameCol.setCellValueFactory(new PropertyValueFactory<Person, String>("lastName")); regularEmailCol.setCellValueFactory(new PropertyValueFactory<Person, String>("email")); regularTable.getColumns().addAll(regularFirstNameCol, regularLastNameCol, regularEmailCol); final VBox vbox1 = new VBox(); vbox1.setSpacing(5); vbox1.setPadding(new Insets(10, 0, 0, 10)); vbox1.getChildren().addAll(regularTable); ((Group) tableScene.getRoot()).getChildren().addAll(vbox1); tableStage.setScene(tableScene); // TREE TABLE ---------------------------------------------------------------------------------------------------------------------- Scene scene = new Scene(new Group()); stage.setTitle("Tree Table Sample"); stage.setWidth(300); stage.setHeight(500); final Label label = new Label("Address Book"); label.setFont(new Font("Arial", 20)); treeTable.setEditable(true); TreeTableColumn firstNameCol = new TreeTableColumn("First Name"); TreeTableColumn lastNameCol = new TreeTableColumn("Last Name"); TreeTableColumn emailCol = new TreeTableColumn("Email"); treeTable.getColumns().addAll(firstNameCol, lastNameCol, emailCol); final VBox vbox = new VBox(); vbox.setSpacing(5); vbox.setPadding(new Insets(10, 0, 0, 10)); vbox.getChildren().addAll(label, treeTable); ((Group) scene.getRoot()).getChildren().addAll(vbox); stage.setScene(scene); firstNameCol.setCellValueFactory(new TreeItemPropertyValueFactory<Person,String>("firstName")); lastNameCol.setCellValueFactory(new TreeItemPropertyValueFactory<Person,String>("lastName")); emailCol.setCellValueFactory(new TreeItemPropertyValueFactory<Person,String>("email")); TreeItem<Person> root = new TreeItem<Person>(new Person("TEST", "TEST", "TEST")); treeTable.setRoot(root); treeTable.setShowRoot(true); root.setExpanded(true); for (Person person : data){ TreeItem<Person> p = new TreeItem<Person>(person); root.getChildren().add(p); } stage.show(); } 

Does anyone know a fix / solution for this, or is this a known bug with TreeTableView ?

EDIT: I just tried this using this example

https://wikis.oracle.com/display/OpenJDK/TreeTableView+API+Examples

and I still get the same problem with missing / missing lines.

+4
source share
1 answer

Thanks @Alexander Kirov for the solution. Upgrading to build 104 solved this problem.

+1
source

Source: https://habr.com/ru/post/1499456/


All Articles