Foros del Web » Programación para mayores de 30 ;) » Java »

[DUDA] Como mostrar imagenes en una grilla?

Estas en el tema de [DUDA] Como mostrar imagenes en una grilla? en el foro de Java en Foros del Web. Hola, La estructura del form es esta: JFrame JPanel JTabbedPane JScrollPane JPanel GridLayout Lo que quiero conseguir es rellenar el JPane con JLabel que llevaran ...
  #1 (permalink)  
Antiguo 27/10/2012, 11:45
 
Fecha de Ingreso: enero-2009
Mensajes: 15
Antigüedad: 15 años, 3 meses
Puntos: 0
[DUDA] Como mostrar imagenes en una grilla?

Hola,

La estructura del form es esta:

JFrame
JPanel
JTabbedPane
JScrollPane
JPanel
GridLayout

Lo que quiero conseguir es rellenar el JPane con JLabel que llevaran como icono una imagen.

No se si la mejor forma es ir insertando los JLabel directamente al JPanel o meter un JTable e ir rellenando poco a poco.

No se si me he explicado bien. Supongo que sera porque estoy algo espeso despues de todo el dia dandole vueltas a lo mismo, pero he sido incapaz de encontrar nada.

Gracias de antemano.

Salud!
  #2 (permalink)  
Antiguo 27/10/2012, 14:02
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: [DUDA] Como mostrar imagenes en una grilla?

En principio estas bien orientado, un JPanel con GridLayout y métele los JLabel. La única "restricción" de esto es que las imagenes deben ser todas del mismo tamaño.

Si no te funciona, pon el código a ver qué estás haciendo mal.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 27/10/2012, 18:21
 
Fecha de Ingreso: enero-2009
Mensajes: 15
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: [DUDA] Como mostrar imagenes en una grilla?

Gracias por tu respuesta Chuidiang

Lo primero, sobre la restriccion que comentas, no será un problema puesto que es uno de mis requisitos (que todas las imagenes mantengan las mismas proporciones). En el caso de que cada imagen fuera de un tamaño seria mas conveniente un GridBagLayout, ¿no?

Mi siguiente duda es como puedo ir generando esos JLabel, pues no son una cantidad predefinida; van en funcion de la cantidad de filas devuelta por una consulta a BD.

Por cierto, los datos de la BD los estoy recogiendo en un ResultSet.

Salud!

PD: Voy a darme un paseo por la que creo es tu web, seguro que vuelvo a encontrar algo que me sirva

Última edición por mordiskitos; 27/10/2012 a las 18:35
  #4 (permalink)  
Antiguo 28/10/2012, 06:31
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: [DUDA] Como mostrar imagenes en una grilla?

Hola:

Es sencillo, un blucle, directamente donde lees el resultset o si quirees organizar un poco mejor el código, donde ya tengas los datos metidos en un array o lista.

Código java:
Ver original
  1. while (resultset.next()){
  2.    datos = resultset.leerdatos()
  3.    JLabel label = new JLabel();
  4.    label.setIcon(new ImageIcon(datos.getImagen());
  5.    panel.add(label);
  6. }

Si el panel ya está visible, haz una llamada a panel.updateUI() al terminar para obligar a un refresco fuerte (repaint() es más suave y no sirve en este caso).

Si quieres cambiar las imagenes, haz un panel.removeAll() y vuelves a empezar. O "complica" un poco el código reutilizando los JLabel que ya están añaadidos, eleminando los que sobren o añadiendo más si faltan.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 28/10/2012, 07:04
 
Fecha de Ingreso: enero-2009
Mensajes: 15
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: [DUDA] Como mostrar imagenes en una grilla?

Buenos dias,

Anoche lo consegui, justo de la forma que me has dicho.

Estoy organizando el codigo segun MVC, de modo que cuando el programa inicia, la vista hace la peticion al controlador (para cargar las imagenes), y este a su vez, hace la peticion al modelo para posteriormente devolver el resultado a la vista.

Funciona, pero no me termina de convencer el aspecto visual que adoptan los jlabel. Estoy teniendo una serie de contratiempos, que tendre que ir resolviendo poco a poco:

- Los JLabel son mostrados en el Jpane "sin limite" horizontal y yo quiero conseguir que solo sea vertical.

- Los JLabel no se muestran correctamente, el primero aparece correctamente, el segundo no aparece (como si no tuviera espacio), el tercero si, el cuarto no...¿Tiene algo que ver con los margenes? (Les estoy aplicando un tamaño fijo a los JLabel) (SOLUCIONADO, era un fallo mio.)

Sinceramente, muchas gracias por tu tiempo

Salud!

Etiquetas: imagenes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:54.