0

上から花をドロップするはずのこのフラワープログラムがあります....数秒待ってから、メソッドを呼び出して花をドロップする必要があります。下降するy値を出力しているため、メソッドが実行されることはわかっています。しかし、それは画面に描画されません。何が間違っているのか本当にわかりません。これがコードの一部です...

    //Ignore starting here
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.util.Random;
    //Ignore ending here

    public class RedFlower implements ActionListener{
        Timer time;
        ImageIcon i = new ImageIcon("graphics//flowers//red_flower.png");
        Image flower = i.getImage();
        int y, x;
        int dy = 1;
        public void dropFlower(){
            Random rnd = new Random();
            y = 50;
            x = rnd.nextInt(1216);
            time = new Timer(5, this);
            time.start();
}
public void actionPerformed(ActionEvent e){// used for stoping the timer when off the screen
    int checky = y++;
    if(checky < 720){
        y++;
    }else{
        time.stop();
    }
    System.out.println(y);

}
//everything after this is what i call in the other method
    public Image getImage(){
    return flower;
}
public int getX(){
    return x;
}
public int getY(){
    return y;
}
    }

これが私の描画コードです...

    public void paintComponent(java.awt.Graphics g){
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D) g;

    g2d.drawImage(rf.getImage(), rf.getX(), rf.getY(), null);// rf is what i called the method
    g2d.drawImage(sc.getImage(), sc.getX(), sc.getY(), null);//this is the basket that you control
}

また、奇妙なことは、ボタンを押すとメソッドが呼び出されますが、スレッドが実行されるときではありません...

4

1 に答える 1

0

二重スラッシュを削除します。

 ImageIcon i = new ImageIcon("graphics/flowers/red_flower.png");
于 2012-10-29T00:12:00.337 に答える