タイマーに基づいて画像を移動するにはどうすればよいですか? ユーザー入力なしで画像を動かそうとしていますが、画像を動かすことができないため、何か間違ったことをしました。
AnimationPanel
実際に画像を移動するために作成したメソッドを間違って呼び出していますか? それと何か関係があるような気がします。
これまでに試したことは次のとおりです。オーバーロードされたコンストラクターAnimationPanel
は、この特定のクラスから簡単に呼び出すことができるようにするためのものです。
public class ClassC extends Component {
int x; int y;
BufferedImage img;
public void paint(Graphics g) {
g.drawImage(img, x, y, null);
}
public ClassC() {
try {
img = ImageIO.read(new File("RobotFrame1.png"));
} catch (IOException e) {
}
}
public ClassC(int x)
{}
public Dimension getPreferredSize() {
if (img == null) {
return new Dimension(100,100);
} else {
return new Dimension(img.getWidth(null)+900, img.getHeight(null)+900);
}
}
public void AnimationPanel() {
javax.swing.Timer timer = new javax.swing.Timer(20, new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
x++;
y++;
repaint();
}
});
timer.start();
}
public static void main(String[] args) {
JFrame f = new JFrame("Load Image Sample");
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.add(new ClassC());
f.pack();
f.setVisible(true);
ClassC callanimation = new ClassC(1);
callanimation.AnimationPanel();
}
}