Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/01/2010, 11:35
nalvher
 
Fecha de Ingreso: abril-2004
Mensajes: 43
Antigüedad: 20 años
Puntos: 0
Pregunta Imágenes solo refrescan redimensionando la pantalla

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