-
Notifications
You must be signed in to change notification settings - Fork 93
/
TableViewSelectionModelExample.java
68 lines (46 loc) · 2.23 KB
/
TableViewSelectionModelExample.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package com.jenkov.javafx.tableview;
import javafx.application.Application;
import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.SelectionMode;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import java.io.FileNotFoundException;
public class TableViewSelectionModelExample extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws InterruptedException, FileNotFoundException {
TableView tableView = new TableView();
TableColumn<Person, String> column1 = new TableColumn<>("First Name");
column1.setCellValueFactory(new PropertyValueFactory<>("firstName"));
TableColumn<Person, String> column2 = new TableColumn<>("Last Name");
column2.setCellValueFactory(new PropertyValueFactory<>("lastName"));
tableView.getColumns().add(column1);
tableView.getColumns().add(column2);
tableView.getItems().add(new Person("John", "Doe"));
tableView.getItems().add(new Person("Jane", "Deer"));
TableView.TableViewSelectionModel<Person> selectionModel = tableView.getSelectionModel();
selectionModel.setSelectionMode(SelectionMode.SINGLE);
selectionModel.setSelectionMode(SelectionMode.MULTIPLE);
ObservableList<Person> selectedItems = selectionModel.getSelectedItems();
selectedItems.addListener(new ListChangeListener<Person>() {
@Override
public void onChanged(Change<? extends Person> change) {
System.out.println("Selection changed: " + change.getList());
}
});
selectionModel.select(1);
ObservableList<Integer> selectedIndices = selectionModel.getSelectedIndices();
VBox vbox = new VBox(tableView);
Scene scene = new Scene(vbox);
primaryStage.setScene(scene);
primaryStage.setTitle("JavaFX TableView Example");
primaryStage.show();
}
}