Java - Imágenes dinámicas en java

 
Vista:

Imágenes dinámicas en java

Publicado por nacho (1 intervención) el 04/01/2010 18:31:46
Hola,

he creado un programa que muestra un JPanel compuesto por 5x5 imágenes que a los 4 segundos se recarga con otras 5x5 imágenes distintas.

El programa funciona bien, pero solamente se ven las imágenes del JPanel si se redimensiona la ventana.

¿Alguien sabe cual es el problema?

Aquí dejo el código fuente:

import java.awt.*;
import java.lang.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;


public class MatrizImagenes extends JFrame
{
int MatrizPiezas[][] = new int[5][5];
JLabel Pieza[][] = new JLabel[5][5];
JPanel PanelPiezas=new JPanel(new GridLayout(5,5));


MatrizImagenes()
{
// Propiedades de la ventana
setResizable(true);
setSize(590,484);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);

}


public void DibujarPiezasEnPanel()
{
ImageIcon im_color1 = new ImageIcon("imagenes/001c1.GIF");
ImageIcon im_color2 = new ImageIcon("imagenes/001c2.GIF");

for (int i=0; i<5; i++)
for (int j=0; j<5; j++)
{
Pieza[i][j]=new JLabel();
Pieza[i][j].setIcon(im_color1);
PanelPiezas.add(Pieza[i][j]);
}

add(PanelPiezas,"Center");


try { Thread.sleep(4000); }
catch (InterruptedException e){ }

PanelPiezas.removeAll();

for (int i=0; i<5; i++)
for (int j=0; j<5; j++)
{
Pieza[i][j]=new JLabel();
Pieza[i][j].setIcon(im_color2);
PanelPiezas.add(Pieza[i][j]);
}

try { Thread.sleep(4000); }
catch (InterruptedException e){ }

PanelPiezas.removeAll();

}





public static void main (String [] args)
{
MatrizImagenes tq = new MatrizImagenes();
while (true){ tq.DibujarPiezasEnPanel();}
}



}

Gracias y un saludo,

Nacho
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

RE:Imágenes dinámicas en java

Publicado por jack (18 intervenciones) el 04/01/2010 20:32:15
hola nacho para solucionar tu problema solo debes llamar el metodo validate(); del jframe despues de que realizas algun cambio en sus componentes en tu caso sera despues de

add(PanelPiezas,"Center");

validate(); //esto es lo que debes agregar

y tambien depues de

for (int j=0; j<5; j++)
{
Pieza[i][j]=new JLabel();
Pieza[i][j].setIcon(im_color2);
PanelPiezas.add(Pieza[i][j]);
}

validate(); //esto es lo que debes agregar
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