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