Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8157004 | 8u112 | Jonathan Giles | P3 | Resolved | Fixed | b01 |
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b18)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b18, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7601]
A DESCRIPTION OF THE PROBLEM :
TreeTableView's selectedItems reports include null items if deselect one item with "Ctrl".
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Steps to reproduce:
1. Run the below example.
2. Press "Ctrl"
3. Click on "Item 2"
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Method javafx.collections.ListChangeListener.Change.getList() must return selected items.
ACTUAL -
Method javafx.collections.ListChangeListener.Change.getList() returned list with null item:
Console:
1 > [null]
2 > [TreeItem [ value: Item 3 ]]
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
TreeTableView<String> treeTable = new TreeTableView<>(new TreeItem<String>("Root"));
treeTable.getRoot().setExpanded(true);
treeTable.getRoot().getChildren().add(new TreeItem<String>("Item 1"));
treeTable.getRoot().getChildren().add(new TreeItem<String>("Item 2"));
treeTable.getRoot().getChildren().add(new TreeItem<String>("Item 3"));
treeTable.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
treeTable.getSelectionModel().select(2);
treeTable.getSelectionModel().select(3);
TreeTableColumn<String, String> column = new TreeTableColumn<>("Text");
column.setPrefWidth(150);
column.setCellValueFactory(
(CellDataFeatures<String, String> p) -> new ReadOnlyStringWrapper(p.getValue().getValue()));
treeTable.getColumns().add(column);
treeTable.getSelectionModel().getSelectedItems().addListener(new ListChangeListener<TreeItem<String>>() {
@Override
public void onChanged(javafx.collections.ListChangeListener.Change<? extends TreeItem<String>> change) {
System.out.println("1 > " + change.getList());
System.out.println("2 > " + change.getList());
}
});
primaryStage.setScene(new Scene(new VBox(treeTable)));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
---------- END SOURCE ----------
- backported by
-
JDK-8157004 TreeTableView's selectedItems reports include null items.
- Resolved
- duplicates
-
JDK-8159795 TableView.getSelectionModel().getSelectedItems() returns null when rows are selected in a specific order.
- Closed
-
JDK-8138848 TableView TableViewArrayListSelectionModel getSelectedIndices() contains -1
- Resolved
-
JDK-8146919 sometimes getting selected items from a listview returns null when it should not
- Closed
-
JDK-8147820 [TableView] getSelectedIndices: list from Change has unexpected side effects
- Closed
- relates to
-
JDK-8160973 [ListView] getSelectedItems() returns null element.
- Closed
-
JDK-8164629 ListChangeListener changes event payload while executing the onChange method
- Closed