Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Ayuda con repaint() gráficos swing

Buenas, Alguien me puede explicar por qué no funciona el repaint() del método anim()?

Gracias y un saludo.


public class Main2 {

public static void main(String[] args) {

JFrame Frame=new JFrame("JUEGO");
Frame.setBounds(200, 100, 500, 400);
Frame.setDefaultCloseOperation(Frame.EXIT_ON_CLOSE);
Frame.setVisible(true);
Animacion A1= new Animacion();
Frame.addKeyListener(A1);
Frame.add(A1);
}

}

class Animacion extends JPanel implements KeyListener{
private File IMG[]=new File[5];
private int pos=0;
private Image[] Imagen= new Image[5];


public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);


for(int i= 0; i<5;i++){
IMG[i]=new File("src/movePackage/p/p"+i+".png");

}

for(int i= 0; i<5;i++){
try{
Imagen[i]=ImageIO.read(IMG[i]);
}
catch(IOException e){
System.out.println("ERROR");

}

}
g.drawImage(Imagen[pos], 100, 100, null);
}


public void Anim(){
for(int i = 0; i <5;i++){
pos =i;
repaint();
System.out.println("blucle");
try{
Thread.sleep(200);
}
catch(Exception e){

}
}
for(int i = 4; i>-1;i--){
pos =i;
repaint();
System.out.println("blucle2");
}
}


private int codigo;

public void keyPressed(KeyEvent e) {
codigo=e.getKeyCode();
System.out.println("EVENT");
if (codigo == 82){

Anim();
}

}

public void keyReleased(KeyEvent e) {


}

public void keyTyped(KeyEvent e) {


}
}

octubre 21, 2014 | Unregistered CommenterErnesto

Ernesto, estaria bueno que expliques un poco cual es el funcionamiento que esperas del programa. Asi quizas te podemos ayudar...

octubre 28, 2014 | Unregistered Commenteralaguslaz

Ernesto, busca un poco sobre SwingWorker y seguramente resolverá tus problemas. Estás ejecutando los métodos de las clases gráficas en el hilo de ejecución principal, en lugar de en el EDT. La clase SwingWorker está para evitar eso.

octubre 28, 2014 | Registered Commenterrickiees