import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Test { public static void main (String[] args) { Win win = new Win("Test Window", "Test Data"); } } /*******************/ /* クラスWinの定義 */ /*******************/ class Win extends JFrame { /******************/ /* コンストラクタ */ /******************/ Win (String name, String data) { // Frameクラスのコンストラクタ(Windowのタイトルを引き渡す) super(name); // Windowの大きさ setSize(450, 350); // パネルの貼り付け D_Panel pn = new D_Panel(data); pn.setBackground(Color.white); getContentPane().add(pn); // ウィンドウを表示 setVisible(true); // イベントアダプタ addWindowListener(new WinEnd()); } /************/ /* 終了処理 */ /************/ class WinEnd extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } } /***********************/ /* クラスD_Panelの定義 */ /***********************/ class D_Panel extends JPanel { String message; /******************/ /* コンストラクタ */ /******************/ D_Panel(String data) { message = data; } /********/ /* 描画 */ /********/ public void paintComponent (Graphics g) { super.paintComponent(g); // 親クラスの描画(必ず必要) int yoyu = 0; // 直線(両端) g.drawLine(10, yoyu+10, 60, yoyu+60); // 正方形(左上,幅,高さ) g.drawRect(70, yoyu+10, 50, 50); // 塗りつぶした正方形(左上,幅,高さ) g.fillRect(130, yoyu+10, 50, 50); // 角をとった正方形(左上,幅,高さ,削除部分) g.drawRoundRect(190, yoyu+10, 50, 50, 20, 20); // 立体正方形(左上,幅,高さ,凹凸) g.draw3DRect(250, yoyu+10, 50, 50, true); g.draw3DRect(310, yoyu+10, 50, 50, false); // 多角形(座標,点の数) int x[] = {370, 420, 395, 370}; int y[] = {yoyu+10, yoyu+10, yoyu+60, yoyu+10}; int pt = x.length; g.drawPolygon(x, y, pt); // 円(左上,幅,高さ) g.drawOval(10, yoyu+70, 50, 50); g.fillOval(70, yoyu+70, 100, 50); // 弧(左上,幅,高さ,始点と終点の角度) g.drawArc(180, yoyu+70, 100, 50, 30, 200); // フォントの設定(50ポイント,TimesRoman Bold) Font f = new Font("TimesRoman", Font.BOLD, 50); g.setFont(f); // 文字列の表示(文字列と開始位置(左下)) // 文字色:黒 g.drawString(message, 10, yoyu+180); // 文字色:青 Color c = new Color(0, 0, 255); g.setColor(c); g.drawString(message, 10, yoyu+240); // 文字色:赤 g.setColor(Color.red); g.drawString(message, 10, yoyu+300); // イメージの描画 g.translate(300, yoyu+170); // 原点の移動 Toolkit tool = getToolkit(); Image im = tool.getImage("fig0.gif"); g.drawImage(im, 0, 0, this); // 領域のコピー g.copyArea(0, 0, 50, 50, 10, 60); // ペイントモードの変更 g.setColor(Color.yellow); g.setPaintMode(); // 上書き g.fillRect(-290, 60, 50, 50); g.setXORMode(Color.blue); // XOR g.fillRect(-230, 60, 50, 50); } }