import java.awt.*; import java.awt.event.*; public class Test { public static void main (String[] args) { Win win = new Win("スクロールバー"); } } /*******************/ /* クラスWinの定義 */ /*******************/ class Win extends Frame { /******************/ /* コンストラクタ */ /******************/ Win (String name) { // Frameクラスのコンストラクタ(Windowのタイトルを引き渡す) super(name); // スクロールペインの追加 ScrollPane sp = new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS); sp.setSize(150, 150); sp.setLocation(30, 50); add(sp); // キャンバスの追加 TestCanvas tc = new TestCanvas(); tc.setSize(500, 400); add(tc); sp.add(tc); // Windowの大きさ setSize(220, 230); // ウィンドウを表示 setVisible(true); // イベントアダプタ addWindowListener(new WinEnd()); } /******************************/ /* 上,左,下,右の余白の設定 */ /******************************/ public Insets getInsets() { return new Insets(35, 10, 10, 10); } /************/ /* 終了処理 */ /************/ class WinEnd extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } } /**************************/ /* クラスTestCanvasの定義 */ /**************************/ class TestCanvas extends Canvas { TestCanvas() { setBackground(Color.white); } /********/ /* 描画 */ /********/ public void paint (Graphics g) { int yoyu = 30; String message = "ScrolBar Test"; // 直線(両端) 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); } }