Saltar al contenido

Obtener el elemento seleccionado de un JavaFX TableView

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *