Graphics クラスの各メソッド(swing)

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);
	}
}