import java.awt.*; import javax.swing.*; import java.util.Random; // 乱数を使うのでRandomクラスを呼び出し public class Ex6_2 extends JPanel { public void paintComponent(Graphics g) { Random rnd = new Random(); // Randomクラスの宣言・インスタンス生成 int x, y, wid, hei; // 座標(x,y) 幅wid 高さhei int rr, gg, bb; // 色設定RGB用 for (int i=0; i<100; i++) { // 100回繰り返し rr = rnd.nextInt(256); // 0〜255の乱数生成し,rrに代入(Red用) gg = rnd.nextInt(256); // 0〜255の乱数生成し,ggに代入(Green用) bb = rnd.nextInt(256); // 0〜255の乱数生成し,bbに代入(Blue用) g.setColor(new Color(rr, gg, bb)); // (rr,gg,bb)で色設定 x = rnd.nextInt(301); // 0,1,...,300 のどれか1つを一様ランダムに生成しxに代入 y = rnd.nextInt(201); // 0,1,...,200 のどれか1つを一様ランダムに生成しyに代入 wid = rnd.nextInt(100); // 0,1,...,99 hei = rnd.nextInt(100); // 0,1,...,99 if ( rnd.nextInt(2) == 0 ) { // 乱数の値が0なら… g.fillOval(x, y, wid, hei); // 左上座標(x,y)の位置に幅wid, 高さheiの楕円描画 } else { // そうでなければ… g.drawRect(x, y, wid, hei); // 左上座標(x,y)の位置に幅wid, 高さheiの矩形描画 } } } public static void main(String[] args) { JFrame app = new JFrame(); app.add(new Ex6_2()); app.setSize(400, 300); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); app.setVisible(true); } }