سلام للجميع
---------------
فى محاولة بسيطة لإستعمال ال Class timer
كتبت كود بسيط حيث عندما يتم الضغط على Button start - الصورة التى فى المكان X_START and Y_START
تتحرك بمعدل زمنى لمدة 5 ثوانى ثم تقف بشرط عند التحرك فى الاتجاه X تتحرك بمسافة 10
انا كتبت ما توصلت له لكت بيعترض على اسم الملف javax.imageio.IIOException: Can't read input file!
أما المشكلة الثانية مش عارف هل استعمال لل clas Timer صح و لا غلط
الكود
---------
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.Timer;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TimerTest extends JFrame implements ActionListener {
private JPanel panel;
private JButton button;
private TimerMove timerMove;
private Timer timer;
public TimerTest() throws IOException {
panel = new JPanel();
button = new JButton("Start");
panel.add(button);
getContentPane().add(panel);
timerMove = new TimerMove();
timer = new Timer();
button.addActionListener(this);
}
public static void main(String[] args) throws IOException {
TimerTest timerTest = new TimerTest();
timerTest.setDefaultCloseOperation(TimerTest.EXIT_ON_CLOSE);
timerTest.setSize(new Dimension(600, 300));
timerTest.setLocationRelativeTo(null);
timerTest.setVisible(true);
timerTest.setExtendedState(MAXIMIZED_BOTH);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button) {
timer.scheduleAtFixedRate(null, 2, 6);
timerMove.moveImage(timer);
}
}
}import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import java.util.Timer;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
class TimerMove extends JPanel {
private int X_START = 10, Y_START = 10;
private File file;
private Image image;
private Timer timer;
public TimerMove() throws IOException {
file = new File("stick.gif");
image = ImageIO.read(file);
timer = new Timer();
moveImage(timer);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, X_START + 10, Y_START + 10, this);
}
public void moveImage(Timer timer) {
this.timer = timer;
repaint();
}
}الكود مرفق و مع الصورة المسببة للمشكلة
شكراً