import java.awt.*; import javax.swing.*; public class Ex7_1 extends JPanel { Person p1 = new Person(Color.GREEN, 100, 100, 10); // 人インスタンスp1作成 Person p2 = new Person(Color.RED, 200, 200, 20); // 人インスタンスp2作成 Person p3 = new Person(Color.BLUE, 300, 300, 15); // 人インスタンスp3作成 Person p4 = new Person(Color.DARK_GRAY, 50, 300, 30); // 人インスタンスp4作成 public void paintComponent(Graphics g) { p1.draw(g); // 人p1描画 p2.draw(g); // 人p2描画 p3.draw(g); // 人p3描画 p4.draw(g); // 人p4描画 } public static void main(String[] args) { JFrame app = new JFrame(); app.add(new Ex7_1()); app.setSize(600, 500); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); app.setVisible(true); } static class Person { // 人クラス Color col; int[] xp = new int[24]; // 人の体をつくる x座標用配列 int[] yp = new int[24]; // 人の体をつくる y座標用配列 int x, y, wid; public Person(Color C1, int X, int Y, int W) { // コンストラクタ col = C1; x = X; y = Y; wid = W; xp[0] = xp[1] = x; xp[4] = xp[5] = xp[22] = xp[23] = (x+wid); xp[2] = xp[3] = xp[6] = xp[7] = xp[20] = xp[21] = (x+2*wid); xp[8] = xp[9] = xp[12] = xp[13] = xp[18] = xp[19] = (x+3*wid); xp[10] = xp[11] = xp[14] = xp[15] = (x+4*wid); xp[16] = xp[17] = (x+5*wid); yp[0] = yp[19] = yp[20] = yp[23] = y; yp[17] = yp[18] = yp[21] = yp[22] = (y+wid); yp[1] = yp[2] = yp[13] = yp[14] = (y+2*wid); yp[3] = yp[4] = yp[11] = yp[12] = yp[15] = yp[16] = (y+3*wid); yp[7] = yp[8] = (y+4*wid); yp[5] = yp[6] = yp[9] = yp[10] = (y+5*wid); } public void draw(Graphics g) { // 描画メソッド g.setColor(col); // 体の色設定 g.fillPolygon(xp, yp, 24); // 体描画 g.setColor(Color.WHITE); // 目の色設定 g.fillOval(x+(int)(2.1*wid), y+(int)(0.1*wid), wid/2, wid/2); // 目 } } }