Я использую этот метод для получения всего объекта.
tableView.getSelectionModel().getSelectedItem()
Как я могу получить данные из одной ячейки?
Я имею в виду получить S20BJ9DZ300266 как строку?
Я использую этот метод для получения всего объекта.
tableView.getSelectionModel().getSelectedItem()
Как я могу получить данные из одной ячейки?
Я имею в виду получить S20BJ9DZ300266 как строку?
Предполагая, что вы знаете, что что-то выбрано, вы можете сделать
TablePosition pos = table.getSelectionModel().getSelectedCells().get(0);
int row = pos.getRow();
// Item here is the table view type:
Item item = table.getItems().get(row);
TableColumn col = pos.getTableColumn();
// this gives the value in the selected cell:
String data = (String) col.getCellObservableValue(item).getValue();
Предполагая, что вы не выбрали ни одной строки, но знаете, где и что вы хотите....
// Item here is the table view type:
Unpaid item = userTable.getItems().get(0);
TableColumn col = userTable.getColumns().get(3);
// this gives the value in the selected cell:
String data = (String) col.getCellObservableValue(item).getValue();
JOptionPane.showMessageDialog(null, data);
table.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
if (newValue == null) {
selected.setText("");
return;
}
System.out.println(newValue.getId());
});
NB: «getId» — это ваш столбец «получить», а «таблица» — это имя вашего табличного представления.
Я решил это. Я получаю строку, например, "[1, proofedor1, calzado1, Rojo, 39, 600, 2, 1200]", и получаю первую ячейку (id) с подстрокой. Салудос
TablePosition pos = (TablePosition) tableVenta.getSelectionModel().getSelectedCells().get(0);
int index = pos.getRow();
String selected = tableVenta.getItems().get(index).toString();
selected = selected.substring(1, selected.indexOf(","));
System.out.println(selected);
Если вы используете построитель сцен, добавьте метод в On Edit Commit для определенного столбца и добавьте логику в класс контроллера. Используйте event.getNewValue()
, чтобы получить новое значение, введенное пользователем. Например.
@FXML
private void UpdateName(TableColumn.CellEditEvent<ModelClass, String> event) {
ModelClass mc = Table.getSelectionModel().getSelectedItem();
mc.setName(event.getNewValue());
System.err.println("new value "+event.getNewValue());
}
Используйте это, когда вы разрешаете редактируемые столбцы
вы можете использовать этот код, я думаю, что он работает
String a=personTable.getColumns().get(0).getCellObservableValue(0).getValue().toString();
System.out.println("value"+a);