import java.awt.*; import javax.swing.*; public class Ex6_3 extends JPanel { Flag f1 = new Flag(Color.GREEN, Color.RED, 50, 50, 200); // 旗クラスFlagのインスタンス生成 Flag f2 = new Flag(Color.lightGray, Color.BLUE, 150, 165, 150); Flag f3 = new Flag(Color.MAGENTA, Color.YELLOW, 230, 10, 100); public void paintComponent(Graphics g) { f1.draw(g); // f1のdraw()メソッド呼び出し f2.draw(g); f3.draw(g); } public static void main(String[] args) { JFrame app = new JFrame(); app.add(new Ex6_3()); app.setSize(400, 300); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); app.setVisible(true); } static class Flag { // 旗クラス Flag Color col1, col2; // 色設定用 int x, y, wid, hei; // 旗の外枠用(x,y)座標, 幅wid, 高さhei public Flag(Color C1, Color C2, int X, int Y, int W) { // コンストラクタ col1 = C1; col2 = C2; x = X; y = Y; wid = W; hei = (int)(W*2/3); } public void draw(Graphics g) { // 描画メソッド g.setColor(col1); // 旗の枠色設定 g.fillRect(x, y, wid, hei); // 旗の枠描画 g.setColor(col2); // 旗の内円色設定 g.fillOval(x+wid/3, y+hei/2-wid/6, wid/3, wid/3); // 旗内の円描画 } } }