Mam problem z przyciskiem chce zeby moje obrazki przesunely sie płynnie o x przy kliknieciu. Zrobilem for, ktory powinien to wykonywac niestety kiedy klikam przycisk obrazki nagle przeskakuja na docelowe miejsce bez plynnej animacji. Najgorsze jest to ze ten for dziala jezeli nie uzywam przycisku i wklejam go pod r.setVisible(true);.
package prostaanimacja;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ProstaAnimacja implements ActionListener
{
JFrame r;
JButton p;
int x = 10;
int y = 300;
public static void main(String[] args)
{
ProstaAnimacja a = new ProstaAnimacja();
a.Dzialaj();
}
public void Dzialaj()
{
this.r = new JFrame("Animacja");
r.setSize(500, 700);
r.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.p = new JButton("start");
p.setSize(100, 10);
p.setBackground(Color.white);
r.getContentPane().add(BorderLayout.SOUTH,p);
p.addActionListener(this);
Rysuj g = new Rysuj();
r.getContentPane().add(g);
r.setVisible(true);
}
public class Rysuj extends JPanel
{
@Override
public void paintComponent(Graphics g)
{
Image o1 = new ImageIcon("C:\\Users\\Judytka\\Desktop\\my\\2.jpg").getImage();
Image o2 = new ImageIcon("C:\\Users\\Judytka\\Desktop\\my\\3.jpg").getImage();
Image o3 = new ImageIcon("C:\\Users\\Judytka\\Desktop\\my\\4.jpg").getImage();
Image o4 = new ImageIcon("C:\\Users\\Judytka\\Desktop\\my\\5.jpg").getImage();
g.drawImage(o1, x, 30, r);
g.drawImage(o2, y, 350, r);
g.drawImage(o3, y, 60, r);
g.drawImage(o4, x, 310, r);
//g.setColor(Color.red);
//g.fillOval(x, y, 70, 70);
}
}
@Override
public void actionPerformed(ActionEvent zdarzenie)
{
for (int i=0;i<300;i++)
{
x++;
r.repaint();
try
{
Thread.sleep(50);
}
catch (Exception ex){}
}
}
}