Здравствуйте, я пытаюсь написать простую программу, которая позволяет мне перемещать прямоугольник на JFrame
, моя проблема в том, что вместо перемещения прямоугольника вокруг него рисуется новый, оставляя другой позади, и я не знаю,почему это происходит, хотел бы немного помочь, вот мой текущий код для класса рисования:
public class frameUpdater extends JPanel implements ActionListener {
private Timer FPS;
private int frameDelay = 40;
private int xVal = 50;
private int yVal = 50;
private int SQUARE_SIZE = 30;
public frameUpdater() {
FPS = new Timer(frameDelay, this);
FPS.start();
}
@Override
public void paintComponent(Graphics g) {
super.paintComponents(g);
g.setColor(Color.GREEN);
g.fillRect(xVal,yVal,SQUARE_SIZE,SQUARE_SIZE);
}
public void actionPerformed(ActionEvent e) {
xVal += 5;
repaint();
System.out.println("updated");
}
}
А вот мой код для моего основного класса:
public class mainEngine {
public static void main(String[] args) {
int FRAME_WIDTH = 500;
int FRAME_HEIGHT = 400;
frameUpdater s = new frameUpdater();
JFrame mainFrame = new JFrame();
mainFrame.setBackground(Color.BLACK);
mainFrame.add(s);
mainFrame.setVisible(true);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setSize(FRAME_WIDTH,FRAME_HEIGHT);
}
Очень благодарен залюбая помощь или советы, которые я могу получить.