у меня есть класс myPanel который наследуется от класса JPANEL и класс myFrame который наследуется от класса JFRAME
мне нужно сделать так чтобы в потоке был класс myPanel я бы в классе myFrame через поток добавлял только объекты класса myPanel.
В результате работы должны двигаться фото, чем больше тем лучше.Вот мой код:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
import javax.swing.Timer;
import javax.swing.JFrame;
public class Main {
public static void main(String[] args) {
int width = 400;
int height = 400;
MyFrame frame = new MyFrame(width, height);
}
}
public class MyFrame extends JFrame {
Dimension dimension = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
public MyFrame(int width,int height){
int x = dimension.width/2-(width/2);
int y = dimension.width/2-(height/2);
setBounds(x, y, width, height);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MyPanel panel = new MyPanel("src/1.png",50);
add(panel);
panel.setBounds(0, 0, width, height);
MyPanel panel1 = new MyPanel("src/2.png",50);
add(panel1);
panel1.setBounds(0, 150, width, height);
MyPanel panel2 = new MyPanel("src/3.png",50);
add(panel2);
panel2.setBounds(0, 200, width, height);
}
}
public class MyPanel extends JPanel {
Image img = null;
int a = 0;
int b = 400;
int x = a +(int)(Math.random()*b);
int y = a +(int)(Math.random()*b);
public MyPanel(String imageName,int t) {
try {
img = ImageIO.read((new File(imageName)));
} catch (IOException e) {
}
Timer time = new Timer(t, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
repaint();
}
});
time.start();
}
public void paintComponent(Graphics graphics) {
graphics.drawImage(img, x, y, null);
x++;
if(x>400) {
x=0;
}
}
}