1

タイマーとJFrameとJComponentを使って日の出アニメーションをデザインするプログラムを書こうとしています。Graphics2Dのオブジェクトは、JFrame上を移動する太陽です。私の問題は、タイマーを配置してGraphicc2Dを移動する場所がわからないことです。これが、JFrameに画像を配置し、その画像に太陽を配置するためにこれまでに行ったことです。どこで太陽を動かすことができるか教えてください。タイマークラスはどこで定義すればよいですか?JFrameまたはJComponentまたはメインクラスで?

public class Main(){

     public static void main(String[] args){

          myFrame frame = new myFrame();
     }
}

class myFrame extends JFrame
{
    public  myFrame()
    {
        Draw component = new Draw();
        add(component);
    }
}

class Draw extends JComponent
{
    public Draw()
    {
          //Read the image here
          //set the newImage
    }

    public void paintComponent(Graphics g)
    {
            Graphics2D g2 = (Graphics2D) g; 
            g2.drawImage(newImage, 0, 0, null);
            g2.fill(new Ellipse2D.Double(x,y,20,20));
            //For the sunrise I need to change x,y during the Timer class!!
    }

}
4

1 に答える 1

4

これは行う必要があります:

int x, y;
Timer timer = new Timer(50, new ActionListener(){

    public void actionPerformed(ActionEvent evt){
        // update x and y 

        repaint();
    }
});

タイマーを開始することを忘れないでください(コンストラクターで開始することをお勧めします)。

于 2012-10-28T01:42:17.547 に答える