Java - Ayuda para rellenar una TableView a partir de un objeto

 
Vista:
sin imagen de perfil
Val: 46
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda para rellenar una TableView a partir de un objeto

Publicado por Jose María (12 intervenciones) el 29/01/2021 09:19:01
Buenas querría rellenar esta tabla a partir de una consulta de base de datos que devuelve una lista, el metodo de la BBDD fuciona pero no consigo que rellene la tabla, si alguien me pudiera ayudar le estaria muy agradecido. Aqui dejo el codigo que tengo hecho:
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
public void recorrer(String autor) {
		List<Libro> lista = mongo.selectLibros(autor);
		Libro libro = new Libro();
		Editorial editorial = new Editorial();
		for (int i = 0; i < lista.size(); i++) {
			libro = new Libro();
 
			libro.setTitulo(lista.get(i).getTitulo());
			libro.setAutor(lista.get(i).getAutor());
			libro.setIsbn(lista.get(i).getIsbn());
			libro.setDescripcion(lista.get(i).getDescripcion());
 
			editorial = new Editorial();
 
			editorial.setNombre(libro.getEditorial().getNombre());
			editorial.setFecha_publicacion(libro.getEditorial().getFecha_publicacion());
			libro.setEditorial(lista.get(i).getEditorial());
			ObservableList<Libro> datosLibro = FXCollections.observableArrayList();
 
			datosLibro.setAll(new Libro(libro.getTitulo(), libro.getDescripcion(), libro.getAutor(), libro.getIsbn(), libro.getEditorial().getNombre(), libro.getEditorial().getFecha_publicacion()));
 
            tabla.setItems(datosLibro);
 
		}
 
	}
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
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda para rellenar una TableView a partir de un objeto

Publicado por Rodrigo (623 intervenciones) el 29/01/2021 15:34:49
No se si lo que propongo mas abajo compilara', pero podrias probarlo para ver que resulta?

El codigo que presentas me parece extran~o, pues la primera linea ya tienes una coleccion de libros, y el resto recorre la lista, para crear nuevos libros, varias veces (linea 3, 6 y 20). Opino que esto no es necesario.

Me quedaria con solo estas instrucciones, nada de ciclos

1
2
3
4
5
6
public void recorrer(String autor) {
  List<Libro> lista = mongo.selectLibros(autor);
  ObservableList<Libro> datosLibro = FXCollections.observableArrayList();
  datosLibro.setAll(lista);
  tabla.setItems(datosLibro);
}

Dado que ahora no se recorre la lista, sugiero cambiar el nombre del metodo a asignarLista, asignarTabla o algo parecido, que es lo que se intenta hacer, en vez del como I"recorrer".)

1
2
3
4
5
6
public void asignarTabla(String autor) {
  List<Libro> lista = mongo.selectLibros(autor);
  ObservableList<Libro> datosLibro = FXCollections.observableArrayList();
  datosLibro.setAll(lista);
  tabla.setItems(datosLibro);
}

Crear una variable para usarla 1 vez parece superfluo, podemos ahorrarnos la variable lista asi:

1
2
3
4
5
public void asignarTabla(String autor) {
  ObservableList<Libro> datosLibro = FXCollections.observableArrayList();
  datosLibro.setAll(mongo.selectLibros(autor));
  tabla.setItems(datosLibro);
}

Pero, de nuevo, no se si esto compilara. Ojala puedas volver a contar si estas optimizaciones y refactors funcionaron.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 46
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda para rellenar una TableView a partir de un objeto

Publicado por Jose María (12 intervenciones) el 20/02/2021 15:33:02
Si funcionaron, muchas gracias
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