円や楕円は,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++) { ・・・・