У меня есть таблица с флажком в каждой строке, и у меня есть кнопка действия. Моя проблема в том, что, как я могу получить выбранный флажок из таблицы, чтобы применить действие при нажатии кнопки?получить выбранные флажки из tableview
Это, как я добавить флажок в Tableview
public void addCeckBoxToTableView() {
/** define a simple boolean cell value for the action column so that the column will only be shown for non-empty rows. */
tcCb.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Object, Boolean>,
ObservableValue<Boolean>>() {
@Override
public ObservableValue<Boolean> call(TableColumn.CellDataFeatures<Object, Boolean> p) {
return new SimpleBooleanProperty(p.getValue() != null);
}
});
/** create a cell value factory with an add button for each row in the table. */
tcCb.setCellFactory(new Callback<TableColumn<Object, Boolean>, TableCell<Object, Boolean>>() {
@Override
public TableCell<Object, Boolean> call(TableColumn<Object, Boolean> p) {
return new CheckBoxCell();
}
});
}
private class CheckBoxCell extends TableCell<Object, Boolean> {
CheckBox checkBox = new CheckBox();
HBox hb = new HBox(checkBox);
/**
* places button in the row only if the row is not empty.
*/
@Override
protected void updateItem(Boolean item, boolean empty) {
super.updateItem(item, empty);
if (!empty) {
setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
setGraphic(hb);
} else {
setGraphic(null);
}
}
}
радушно.
С этой настройкой вы не можете. Проблемы заключаются в следующем: 1. вы не устанавливаете значение логического свойства, когда флажок установлен/снят флажок, и 2. вы не храните ссылку на логическое свойство, предоставленное 'cellValueFactory'. Используйте стандартный ['CheckBoxTableCell'] (http://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/cell/CheckBoxTableCell.html) и см. Http://stackoverflow.com/questions/28671132/или http://stackoverflow.com/questions/34940563 (или другие, просто поиск ...) –