SelectionMode
table默认是只能选着一行的,如果想选着多行,设置SelectionMode,此时可以对选中的多个进行监听。
- ListChangeListener<Person> indicesListener = new ListChangeListener<Person>() {
- @Override public void onChanged(Change<? extends Person> c) {
- while (c.next()) {
- selectionUpdated(c.getAddedSubList(), c.getRemoved());
- }
- }
- };
- tableView.getSelectionModel().getSelectedItems().addListener(indicesListener);
- tableView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
tableView.getSelectionModel()得到的是个抽象类SelectionModel,它有二个子类MultipleSelectionModel, SingleSelectionModel。
getSelectedIndex()
getSelectedItem()
selectedIndexProperty()
selectedItemProperty()
selectFirst()
selectLast()
clearSelection()
clearSelection(int index)
selectIndices(int index, int... indices)
selectRange(int start, int end)
select(int index)
select(T obj)
setSelectionMode(SelectionMode.MULTIPLE);
MultipleSelectionModel则提供多选功能,并且提供多选的一些方法。
selectAboveCell()
selectBelowCell()
selectLeftCell()
selectRightCell()
setCellSelectionEnabled(boolean value)
select(int row, TableColumn<S,?> column)
选择变换监听
- tableview.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
- //tableview.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener() {
- @Override
- public void changed(ObservableValue observable,Object oldValue, Object newValue) {
- system.out.println("selection change");
- }
- });