复选框选择与TableView绑定

时间:2014-01-28 09:51:14

标签: javafx

如何使用表格视图中的复选框isSelected与TableView选择模型enter image description here绑定。在手动(使用鼠标多选)中选择tableview中的项目

 ObservableList<T> observableList = tableView.getSelectionModel().getSelectedItems();
 System.out.println(observableList);

如何使用tableview绑定复选框

   box.selectedProperty().addListener(new ChangeListener<Boolean>() {
                            @Override
                            public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
                                if (t1) {
                                    Object object = getTableView().getItems().get(getTableRow().getIndex());
                                    objects.add(object);
                                    getTableView().getItems().set(getTableRow().getIndex(), object);
                                    tableView.getSelectionModel().getSelectedItem();                                    //tableView.getSelectionModel().setSelectedIndex(getTableRow().getIndex());

                                } else {
                                    Object object = getTableView().getItems().get(getTableRow().getIndex());
                                    objects.remove(object);
                                }
                                System.out.println(objects);
                            }
                        });

如果在行中选择了复选框,行项目与getSelectionModel().getSelectedItems()绑定,或者如何在tableView中手动设置setSelectedItems

1 个答案:

答案 0 :(得分:1)

box.selectedProperty().addListener()

中添加到此行

tableView.getSelectionModel().select(getTableRow().getIndex());

box.selectedProperty().addListener(new ChangeListener<Boolean>() {
    @Override
    public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
        if (t1) {
            tableView.getSelectionModel().select(getTableRow().getIndex());

        } else {
            tableView.getSelectionModel().clearSelection(getTableRow().getIndex());
        }
    }
});