Graphics2D クラス

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
import java.awt.font.*;
import java.text.*;

public class Test {
	public static void main (String[] args)
	{
		Graphics2D1 win = new Graphics2D1("Graphics2D クラスのメソッド setStroke 等");
	}
}

class Graphics2D1 extends JFrame
{
	/******************/
	/* コンストラクタ */
	/******************/
	Graphics2D1(String name)
	{
					// JFrameクラスのコンストラクタ(Windowのタイトルを引き渡す)
		super(name);
					// Windowの大きさ
		setSize(340, 400);
					// Graphics2D1_MainPanel オブジェクト
		Graphics2D1_MainPanel pn = new Graphics2D1_MainPanel();   // Graphics2D1_MainPanel オブジェクトの生成
		getContentPane().add(pn);   // Graphics2D1_MainPanel オブジェクトを ContentPane に追加
					// ウィンドウを表示
		setVisible(true);
					// イベントアダプタ
		addWindowListener(new WinEnd());
	}

	/******************************/
	/* 上,左,下,右の余白の設定 */
	/******************************/
	public Insets getInsets()
	{
		return new Insets(50, 20, 20, 20);
	}

	/************/
	/* 終了処理 */
	/************/
	class WinEnd extends WindowAdapter
	{
		public void windowClosing(WindowEvent e) {
			System.exit(0);
		}
	}
}

class Graphics2D1_MainPanel extends JPanel
{
	Graphics2D1_MainPanel()
	{
		setBackground(Color.white);   // 背景色の設定
	}
					// 描画
	public void paintComponent(Graphics g)
	{
		super.paintComponent(g);   // 親クラスの描画
							// Graphics2Dの取得
		Graphics2D g2 = (Graphics2D)g;
							// 文字列(最下段に描画)
								// 通常の文字列
		Font f = new Font("TimesRoman", Font.BOLD, 30);
		g2.setFont(f);
		g2.drawString("FontColor", 50, 250);
								// 属性付き文字列
        AttributedString str = new AttributedString("FontColor");
		str.addAttribute(TextAttribute.FONT,new Font("TimesRoman", Font.BOLD, 50), 0, 4);
        str.addAttribute(TextAttribute.FOREGROUND, Color.RED, 0, 4);
		str.addAttribute(TextAttribute.FONT,new Font("TimesRoman", Font.BOLD, 30), 4, 9);
        str.addAttribute(TextAttribute.FOREGROUND, Color.GREEN, 4, 9);
        AttributedCharacterIterator ac = str.getIterator();
        g2.drawString(ac, 50, 300);
							// 線幅が5ピクセルの矩形(左上)
		g2.setStroke(new BasicStroke(5.0f));
		g2.draw(new Rectangle(20, 20, 100, 50));
							// 塗りつぶした矩形(赤)(左中)
		g2.setColor(Color.red);
		g2.fill(new Rectangle(20, 90, 100, 50));
							// 塗りつぶした矩形(グラデーション)(左下)
		g2.setPaint(new GradientPaint(20f, 160f, Color.yellow, 120f, 160f, Color.red));
		g2.fill(new Rectangle(20, 160, 100, 50));
							// 移動(右上)
		g2.setColor(Color.green);
		g2.setStroke(new BasicStroke(5.0f));
		g2.transform(new AffineTransform());
		g2.translate(140.0, 0.0);
		g2.draw(new Rectangle(20, 20, 100, 50));
							// 回転(右中)
		g2.translate(30, 70);
		g2.rotate(45.0 * Math.PI / 180.0);
		g2.draw(new Rectangle(30, 0, 100, 50));
							// 縮小(右下)
		g2.rotate(-45.0 * Math.PI / 180.0);
		g2.scale(0.7, 0.7);
		g2.draw(new Rectangle(0, 150, 100, 50));
	}
}