tutorial llenar eventos data java javafx tableview

llenar - tableview javafx css



Javafx: no puedo obtener datos en una TableView (1)

Los getters y setters en la clase SNMPInterface que utiliza para ingresar a PropertyValueFactory deben marcarse como public, not no modifier (de lo contrario, la lógica de reflexión inherente a PropertyValueFactory no los encontrará).

public static class SNMPInterface { private final SimpleStringProperty ifIndex; private final SimpleStringProperty ifDescr; SNMPInterface( String ifIndex, String ifDescr ) { this.ifIndex = new SimpleStringProperty( ifIndex ); this.ifDescr = new SimpleStringProperty( ifDescr ); } public String getIfIndex() { return ifIndex.get(); } public void setIfIndex( String index ) { ifIndex.set( index ); } public String getIfDescr() { return ifDescr.get(); } public void setIfDescr( String descr ) { ifDescr.set( descr ); } }

No puedo llenar un objeto JavaFX TableView con mis propios datos. Intenté modificar el código que se encuentra aquí para adaptarlo a las necesidades de mi programa. Agregué la tabla utilizada en ese tutorial, y se muestra correctamente. Copié ese código para crear una segunda tabla, pero no puedo mostrar mis datos en esa segunda tabla.

Creo que modifiqué correctamente el código para aceptar datos de mi clase SNMPInterface. Intento rellenar mi tabla con datos estáticos, y luego con datos leídos desde un archivo. Ninguno de los procesos funciona, aunque cualquiera creará las columnas con los encabezados adecuados.

Mi proyecto completo se puede encontrar en GitHub .

Inicialmente, creo un objeto TableView de objetos de clase ''SNMPInterface'':

private TableView< SNMPInterface > interfaceTableView = new TableView<>();

Luego creo un ObservableList de objetos SNMPInterface:

private final ObservableList< SNMPInterface > interfaceData = FXCollections.observableArrayList( new SNMPInterface( "99", "testlo" ), new SNMPInterface( "98", "testeth1" ), new SNMPInterface( "97", "testeth2" ), new SNMPInterface( "96", "testbond0" ) );

Más tarde, creo una columna para el miembro de datos ''ifIndex'':

TableColumn< SNMPInterface, String > ifIndexCol = new TableColumn<>( "Index" ); ifIndexCol.setCellValueFactory( new PropertyValueFactory<>( "ifIndex" ) );

... y la segunda columna para ''ifDescr'':

TableColumn ifDescrCol = new TableColumn( "Description" ); ifDescrCol.setCellValueFactory( new PropertyValueFactory<>( "ifDescr" ) );

Luego trato de agregarlo al GridPane (llamado rootNode):

interfaceTableView.setItems( interfaceData ); interfaceTableView.getColumns().setAll( ifIndexCol, ifDescrCol ); rootNode.add( interfaceTableView, 0, 7, 2, 1 );

...Pero eso no funciona.

Tengo un bucle para verificar que los datos estén disponibles para el método, y un segundo que verifica que los datos se leen correctamente desde los archivos. Ambos contenedores parecen tener datos válidos, pero ninguno lo hace en mi mesa.

Mi tabla parece ser efectivamente la misma que la tabla de tutoriales, pero obviamente estoy cometiendo un error en alguna parte. ¿Alguien ve dónde está mi error?