este problema se puede tratar de variadas formas, por lo tanto te damos la que para nosotros es la solución más completa.
Solución:
Ok, digamos que tienes una clase de modelo de datos llamada Person
. De esta manera:
Person person = taview.getSelectionModel().getSelectedItem();
System.out.println(person.getName());
Tenga en cuenta que TableView
debe tomar un Person
como un argumento de tipo para evitar la conversión:
@FXML
private TableView taview;
o
TableView taview = new TableView<>();
cuando se seleccione su fila, devolverá una Person
ejemplo. Luego haz lo que quieras con esa instancia.
tableview.getSelectionModel().selectedItemProperty().addListener(new ChangeListener()
@Override
public void changed(ObservableValue observableValue, Object oldValue, Object newValue)
//Check whether item is selected and set value of selected item to Label
if(tableview.getSelectionModel().getSelectedItem() != null)
TableViewSelectionModel selectionModel = tableview.getSelectionModel();
ObservableList selectedCells = selectionModel.getSelectedCells();
TablePosition tablePosition = (TablePosition) selectedCells.get(0);
Object val = tablePosition.getTableColumn().getCellData(newValue);
System.out.println("Selected Value" + val);
);
Con este código, puede obtener el valor seleccionado de JAVAFX TABLEVIEW Cell.
Gracias..
@pranishres
Aquí está mi intento de un oyente de cambio de selección de celda (incluso si la fila no cambia), inspirado en el código de @Java Man:
tableView.getSelectionModel().setCellSelectionEnabled(true);
ObservableList selectedCells = tableView.getSelectionModel().getSelectedCells();
selectedCells.addListener(new ListChangeListener()
@Override
public void onChanged(Change c)
TablePosition tablePosition = (TablePosition) selectedCells.get(0);
Object val = tablePosition.getTableColumn().getCellData(tablePosition.getRow());
System.out.println("Selected Value" + val);
);
Agradecemos que desees añadir valor a nuestro contenido tributando tu experiencia en las anotaciones.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)