Bom Dia a todos,
Bem como de costume, meu projeto de atualização de imagens deu problema, como havia dito no outro tópico, estou fazendo um projeto que utiliza um metodo de movimentação de imagens para simular o movimento do mesmo
a classe responsável pelo movimento é essa
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
*
* @author UFABC
*/
public class Simulador {
JFrame janela = new JFrame();
int contg, cont;
Imagens imagem;
int a = 0, b = 0, c = 0, d = 0, x, xx, y, x2, y2, esc;
public void criaJanela() {
// janela = new JFrame();
janela.setLayout(null); // origem: coordenada (0,0) canto superior esquerdo
janela.setBounds(0, 0, 600, 800);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.getContentPane().setBackground(Color.WHITE);
janela.setTitle("Simulador");
janela.setVisible(true);
}
public void carregaImagem(JPanel janela) {
// imagem = new Imagens("robo.jpg");
// imagem = new Imagens("robo2.gif");
//janela.add(imagem);
}
// tela sendo JFrame
public void carregaImagem2(JPanel janela) {
imagem = new Imagens("robo1.gif");
janela.removeAll();
janela.setVisible(false);
janela.setVisible(true);
janela.add(imagem);
imagem = new Imagens("robo1.gif");
janela.add(imagem);
}
public void guarda1() {
}
public void moveImagemx1() {
imagem.setX(imagem.getX() + 10);
imagem.setIcon(imagem.getIcon());
imagem.setVisible(false);
imagem.setVisible(true);
a++;
}
public void moveImagemy1() {
imagem.setY(imagem.getY() + 10);
imagem.setIcon(imagem.getIcon());
b++;
}
public void moveImagemx2() {
imagem.setX(imagem.getX() + (-10));
imagem.setIcon(imagem.getIcon());
c++;
}
public void moveImagemy2() {
imagem.setY(imagem.getY() + (-10));
imagem.setIcon(imagem.getIcon());
d++;
}
public void geral(final int x) {
new Thread() {
int xtemp = x, contimg = 0;
@Override
public void run() {
do {
moveImagemx1();
imagem.repaint();
if (contimg == 0) {
imagem.setVisible(false);contimg++;
} else {
imagem.setVisible(true);
}
try {
Thread.sleep(100);
} catch (Exception ea) {
} // atrasa um pouco
if (a == x) {
xtemp = 0;
a = 0;
}
} while (a < xtemp);
}
}.start();
}
}
e a sua aaplicação na classe interf. JFrame é essa
s1.carregaImagem2(jPanel3);
s1.geral(Integer.parseInt(jTextField1.getText()));
o problema é que quando eu mando executar o programa ele mantem a imagem por onde ele passou, como se a tela tivesse suja, mesmo que não tivesse mais imagem lah ....
EX.
Onde saiu e onde esta o rastro.................................................verdadeiro e ponto final do algoritmo de posição
|.....................................................................................................|
\/...................................................................................................\/
:D ................................................................................................:D
Alguem sabe me dizer como resolver isso ?
Grato Guilherme
