Мне не понятна логика работы TableView c TableColumn в JavaFX
Всем привет. Потихоньку окунаюсь в дебри Java. Столкнулся со следующей проблемой. Через JavaFX классе Controller создаю таблицу.
// Таблица с 2 столбцами
@FXML
private TableView<Table> allTable;
@FXML
private TableColumn<Table, String> outKey;
@FXML
private TableColumn<Table, String> outValue;
Через два TextField (один для колонки outKey, другой для колонки outValue) я заношу значения в таблицу.
Использую примитивную инкапсуляцию в классе Table
public class Table {
private String key;
private String value;
public String getKey() {
return key;
}
public void setKey (String key) {
this.key = key;
}
public String getValue () {
return value;
}
public void setValue (String value) {
this.value = value;
}
}
//отработка ввода enterKeyVar
@FXML
void PressEnterEnterKeyVar(ActionEvent event) {
Table table = new Table();
table.setKey(enterKeyVar.getText());
key.add(enterKeyVar.getText());
ObservableList<Table> tables = allTable.getItems();
tables.add(table);
allTable.setItems(tables);
outKey.setCellValueFactory(new PropertyValueFactory<Table, String>("Key"));
enterKeyVar.clear();
}
//отработка ввода enterValueVar
@FXML
void PressEnterEnterValueVar(ActionEvent event) {
Table table = new Table();
table.setValue(enterValueVar.getText());
value.add(enterValueVar.getText());
ObservableList<Table> tables = allTable.getItems();
tables.add(table);
allTable.setItems(tables);
outValue.setCellValueFactory(new PropertyValueFactory<Table, String>("Value"));
enterValueVar.clear();
}
И в принципе все работает, НО! при вводе значений в TextField enterKeyVar или TextField enterValueVar, по нажатию Enter, значение как и должно появляется в 0 ячейке нужного столбца и так далее. А соседней ячейке присваивается значение null. В результате если поочередно вводить значения в разные TextField получается следующее

Я не могу понять как сделать так, что бы в соседней колонке не присваивалось значение null и вообще колонки были независимыми друг от друга до тех пор пока мне это не понадобится. Так же буду благодарен если вы мне поможете с ответом можно ли разом очистить целую колонку? Спасибо!!!