Как получить конкретный индекс ячейки tabvleview? - PullRequest
0 голосов
/ 01 октября 2019

Я создал TableView с колонками и заполнил его данными таблицы базы данных sql. мой qz: когда я изменяю значение ячейки в столбце 0 на XXX, я хочу изменить значение ячейки в столбце 1 на значение YYYY

как я могу получить индекс ячейки 1 для вставки нового значения после коммита редактированияячейка 0>?

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

По крайней мере, в конце и после недели поиска ответа, я нашел решение, и оно:

TablePosition TPOS = (TablePosition) table.getSelectionModel().getSelectedCells().get(5);
    int rowIndex = TPOS.getRow();
    int colIndex = TPOS.getColumn();
    TableColumn COLP = (TableColumn) table.getColumns().get(5);
TableCell cell = (TableCell)table.queryAccessibleAttribute(AccessibleAttribute.CELL_AT_ROW_COLUMN,rowIndex,colIndex);
cell.setText(String.valueOf(getPrice()));

// getPrice () - это метод возврата, чтобы найти цену отредактированногозначение ячейки элемента

0 голосов
/ 01 октября 2019

У меня была похожая «проблема».

TablePosition pos = tableView.getSelectionModel().getSelectedCells().get(0);
int row = pos.getRow();
int col = pos.getColumn();

TableColumn column = pos.getTableColumn();
Object o = column.getCellData(row); //getting the Value from the specific Cell

Я использовал этот метод после двойного щелчка по ячейке. Вы должны изменить это решение так, чтобы оно соответствовало вашей проблеме, но оно должно помочь вам.

Для редактирования конкретной ячейки я использовал метод setCellFactory из класса TableColumn.

column.setCellFactory(factory -> new TableCell<ObservableList<Object>, Object>() {

  @Override
  protected void updateItem(Object item, boolean empty) {

    //Do something
  }
});
...