円・楕円を描く drawOval(),fillOval()

円や楕円は,drawOval(), fillOval() というメソッドで描きます。
引数は,それに外接する長方形の左上の座標と横幅・高さで,いずれも int型です。

// Ovals.java
import java.applet.Applet;
import java.awt.*;

public class Ovals extends Applet{
    Dimension s;

    public void init() {
        setSize(300, 200);
        s=getSize();
    }

    public void paint(Graphics g) {
        int m;
        for(int i=0; i<11; i++) {
            m = 10*i;
            g.drawOval(m, m, s.width-2*m, s.height-2*m);
        }
    }

}

練習1 各楕円の色を乱数で変化させなさい。

ヒント 乱数は,Math.random() で呼び出します。R,G,B を 128〜255で与える場合は,以下のようにすればいいでしょう。
    public void paint(Graphics gr) {
        int r,g,b;
        for(int i=0; i<11; i++) {
            r = (int)(128*Math.random()+128);
            g = (int)(128*Math.random()+128);
            b = (int)(128*Math.random()+128);
            gr.setColor(new Color(r, g, b));
            m = 10*i;
            gr.drawOval(m, m, s.width-2*m, s.height-2*m);
        }
    }
ここでは g という整数を使うため,Graphicsオブジェクト名は gr に変えてあります。

練習2 drawOval() を fillOval() に変えて,塗りつぶした楕円を描くようにしなさい。

練習3 "Next" というボタンを追加し,ボタンをクリックする毎に,描かれる楕円の数が増えるようにしなさい。ただし,10まで描いたあとは,0に戻るようにします。

    public void actionPerformed(ActionEvent e) {
        step++;
        if(step==11) step=0;
        repaint();
    }
    public void paint(Graphics gr) {
        int r,g,b;
        for(int i=0; i<step; i++) {
            ・・・・