Witam, na wstępie chcę zaznaczyć, że jestem początkujący w Javie. Mam problem z ruchomym obrazkiem. Po wyświetleniu przesuwa się do pewnego miejsca na JPanelu, po czym znika, jakby panel się kończył.
Klasa, która służy za wyświetlanie obrazka.
public class Wyswietlanie extends JPanel {
private int x;
private int y;
private BufferedImage image;
Wyswietlanie(int x, int y) throws IOException {
this.x = x;
this.y = y;
image = ImageIO.read(new File("image.jpg"));
Dimension dimension = new Dimension(image.getWidth(), image.getHeight());
this.setPreferredSize(dimension);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, x, y, null);
}
Klasa, która odpowiada za ruch:
public class ObiektRuchomy extends Wyswietl{
public ObiektRuchomy(int x, int y) throws IOException {
super(x, y);
ruszajSie();
}
void ruszajSie(){
super.setX(super.getX()+1);
repaint();
}
I w mainie:
while (true) {
obiekt.ruszajSie();
panel.repaint();
Thread.sleep(100);
}
Wiem, że problem prawdopodobnie leży w klasie Wyswietlanie, bo ustawia się taka, a nie inna wielkość tego panelu, ale nie mam pojęcia jak to naprawić.