Я пытаюсь отобразить на экране 2 объекта с помощью JFrame и пытаюсь переместить их. Я получил 1 объект, чтобы появиться на экране, а затем попытался установить 2 из них, но я просто не могу заставить его работать
Это мой главный
package animate;
import javax.swing.*;
import java.awt.*;
public class Main {
public static void main(String[] args){
//Square s = new Square(50, 100, 2);
//Square s2 = new Square(300, 50, 1);
JFrame frame = new JFrame();
JPanel panel = new JPanel();
frame.setSize(700, 350);
panel.setLayout(new FlowLayout());
panel.add(new Square(50, 100, 2));
panel.add(new Square(300, 50, 1));
frame.add(panel);
frame.setResizable(false);
frame.setTitle("hi");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
Это мой квадратный класс (Предполагается нарисовать квадрат, но я сейчас использую круг для тестирования)
package animate;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
import javax.swing.*;
public class Square extends JPanel implements ActionListener {
Timer t = new Timer(5, this);
double x, y, vel;
public Square(int x, int y, int vel){
this.x = x;
this.y = y;
this.vel = vel;
}
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
Ellipse2D circ = new Ellipse2D.Double(this.x, this.y, 40, 40);
g2.fill(circ);
t.start();
}
public void actionPerformed(ActionEvent e){
x += 0;
y += 0;
repaint();
}
@Override
public Dimension getPreferredDimension(){
return new Dimension(100, 540);
}
}