Java - ¿porque no me muestran los datos ingresados en la tableView?

 
Vista:
sin imagen de perfil

¿porque no me muestran los datos ingresados en la tableView?

Publicado por Luisa (1 intervención) el 20/08/2022 13:49:41
Hola, tengo un problema estoy realizando un proyecto con javafx y scene builder, sin embargo cree una tableviem para almacenar los datos de la persona, ingrese algunos datos por el código para ver como funcionaba sin embargo al ejecutar la tabla se ve vacía pero cuando selecciono alguna de sus filas me muestra toda la información en la parte de arriba, ósea si esta guardando la información pero no se logra visualizar.
Cualquier ayuda lo agradecería inmensamente, llevo ya varios días intentando solucionarlo y nada
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

¿porque no me muestran los datos ingresados en la tableView?

Publicado por R (1 intervención) el 16/09/2022 19:16:19
Una vez que creaste la tabla en Scene Builder y generas los objetos en la clase controller correspondiente al archivo fxml, es necesario definir de que tipo va a ser la tabla y sus columnas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@FXML
    private Label label;
    @FXML
    private TextField txtNombre;
    @FXML
    private TextField txtTelefono;
    @FXML
    private TextField txtDireccion;
    @FXML
    private TextField txtCorreo;
    @FXML
    private Button btnAgregar;
    @FXML
    private TableView<Contactos> tabContactos;
    @FXML
    private TableColumn<Contactos, String> colNombre;
    @FXML
    private TableColumn<Contactos, String> colTelefono;
    @FXML
    private TableColumn<Contactos, String> colDireccion;
    @FXML
    private TableColumn<Contactos, String> colCorreo;

En donde en el TableView y TableColumn la definí de tipo de una clase llamada Contactos y de tipo String, en esa clase Contactos contiene las variables que son los datos que mostrara la tabla, en esa misma clase se tiene que crear un constructor con esas variables y los getters y setters para poder operar esas variables.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public class Contactos {
    private String nombre, telefono, direccion, correo;
 
    public Contactos(String nombre, String telefono, String direccion, String correo) {
        this.nombre = nombre;
        this.telefono = telefono;
        this.direccion = direccion;
        this.correo = correo;
    }
 
    public String getNombre() {
        return nombre;
    }
 
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
 
    public String getTelefono() {
        return telefono;
    }
 
    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }
 
    public String getDireccion() {
        return direccion;
    }
 
    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }
 
    public String getCorreo() {
        return correo;
    }
 
    public void setCorreo(String correo) {
        this.correo = correo;
    }
 
}

Ahora en la clase Controller en donde se tiene los objetas @FXML, se asignan los datos que tiene cada columna, esto se pone dentro del métod initialize.

1
2
3
4
5
6
7
8
9
10
11
12
@Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
        colNombre.setCellValueFactory(new PropertyValueFactory<>("nombre"));
        colNombre.setStyle("-fx-alignment: CENTER-LEFT");
        colTelefono.setCellValueFactory(new PropertyValueFactory<>("telefono"));
        colTelefono.setStyle("-fx-alignment: CENTER-LEFT");
        colCorreo.setCellValueFactory(new PropertyValueFactory<>("correo"));
        colCorreo.setStyle("-fx-alignment: CENTER-LEFT");
        colDireccion.setCellValueFactory(new PropertyValueFactory<>("direccion"));
        colDireccion.setStyle("-fx-alignment: CENTER-LEFT");
    }

Dentro del valor PropertyValueFactory el nombre que esta entre comillas tiene que ser el mismo nombre de los parámetros que recibe el constructor en la clase Contactos.

Te dejo un video explicativo: https://youtu.be/j_MuIuwOym8
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar