AWT

[戻る] [前に] [次に]

AWTとは

AWT(Abstract Windowing Tools)は、Java で GUIアプリケーションを作成するためのクラスライブラリです。現在では Swing もよく利用されていますが、Swing よりも軽い GUIアプリケーションを作成することが可能です。

フレーム(Frame)

◆ サンプル
Button
◆ 説明

フレームFrame)はウインドウやダイアログの基本となるものです。

◆ ソース
FrameTest.java
import java.awt.*;

public class FrameTest extends Frame {
    public static void main(String [] args) {
        new FrameTest();
    }
    FrameTest() {
        super("FrameTest");
        setSize(200, 100);
        show();
    }
}
◆ 実行方法

FrameTest.java をコンパイルして実行してみましょう。200×100 の大きさのウィンドウ(フレーム)が表示されれば成功です。

C:\java>javac FrameTest.java
C:\java>java FrameTest

ウィンドウを閉じる機能が実装されていないので、コマンドプロンプトで Ctrl-C を入力して終了させてください。

C:\java>java FrameTest
Ctrl-C    ← Ctrlキーを押しながらCキーを押す

ボタン(Button)

◆ サンプル
Button
◆ 説明

ボタンButton)を配置します。

◆ ソース
ButtonTest.java
import java.awt.*;

public class ButtonTest extends Frame {
    public static void main(String [] args) {
        new ButtonTest();
    }
    ButtonTest() {
        super("ButtonTest");
        setSize(200, 100);
        setLayout(new FlowLayout());
        Button b1 = new Button("OK");
        add(b1);
        show();
    }
}
◆ 備考

ラベル(Label)

◆ サンプル
Label
◆ 説明

ラベルLabel)を配置します。

◆ ソース
LabelTest.java
import java.awt.*;

public class LabelTest extends Frame {
    public static void main(String [] args) {
        new LabelTest();
    }
    LabelTest() {
        super("LabelTest");
        setSize(200, 100);
        setLayout(new FlowLayout());
        Label l1 = new Label("HelloWorld!!");
        add(l1);
        show();
    }
}

テキストフィールド(TextField)

◆ サンプル
TextField
◆ 説明

テキストフィールドTextField)を配置します。

◆ ソース
TextFieldTest.java
import java.awt.*;

public class TextFieldTest extends Frame {
    public static void main(String [] args) {
        new TextFieldTest();
    }
    TextFieldTest() {
        super("TextFieldTest");
        setSize(200, 100);
        setLayout(new FlowLayout());
        TextField t1 = new TextField("Hello World!!");
        add(t1);
        show();
    }
}
◆ 備考

テキストエリア(TextArea)

◆ サンプル
TextArea
◆ 説明

テキストエリアTextArea)を配置します。

◆ ソース
TextAreaTest.java
import java.awt.*;

public class TextAreaTest extends Frame {
    public static void main(String [] args) {
        new TextAreaTest();
    }
    TextAreaTest() {
        super("TextAreaTest");
        setSize(200, 100);
        setLayout(new FlowLayout());
        TextArea b1 = new TextArea("Hello World!!", 3, 20);
        add(b1);
        show();
    }
}
◆ 備考

チェックボックス(Checkbox)

◆ サンプル
Checkbox
◆ 説明

チェックボックスCheckbox)を配置します。

◆ ソース
CheckboxTest.java
import java.awt.*;

public class CheckboxTest extends Frame {
    public static void main(String [] args) {
        new CheckboxTest();
    }
    CheckboxTest() {
        super("CheckboxTest");
        setSize(200, 100);
        setLayout(new FlowLayout());
        Checkbox c1 = new Checkbox("OK?");
        add(c1);
        show();
    }
}
◆ 備考

チョイス(Choice)

◆ サンプル
Choice
◆ 説明

チョイスChoice)を配置します。

◆ ソース
ChoiceTest.java
import java.awt.*;

public class ChoiceTest extends Frame {
    public static void main(String [] args) {
        new ChoiceTest();
    }
    ChoiceTest() {
        super("ChoiceTest");
        setSize(200, 100);
        setLayout(new FlowLayout());
        Choice c1 = new Choice();
        c1.add("ChoiceA");
        c1.add("ChoiceB");
        c1.add("ChoiceC");
        add(c1);
        show();
    }
}
◆ 備考

リスト(List)

◆ サンプル
List
◆ 説明

リストList)を配置します。

◆ ソース
ListTest.java
import java.awt.*;

public class ListTest extends Frame {
    public static void main(String [] args) {
        new ListTest();
    }
    ListTest() {
        super("ListTest");
        setSize(200, 100);
        setLayout(new FlowLayout());
        List list1 = new List();
        list1.add("ListA");
        list1.add("ListB");
        add(list1);
        show();
    }
}
◆ 備考

スクロールバー(Scrollbar)

◆ サンプル
Scrollbar
◆ 説明

スクロールバーScrollbar)は、スクロールバーを表示します。スクロールバーの動きに従って部品を自動的にスクロールさせるには、ScrollPane を利用します。

◆ ソース
ScrollbarTest.java
import java.awt.*;

public class ScrollbarTest extends Frame {
    public static void main(String [] args) {
        new ScrollbarTest();
    }
    ScrollbarTest() {
        super("ScrollbarTest");
        setSize(200, 100);
        setLayout(new BorderLayout());
        Scrollbar sb1 = new Scrollbar(Scrollbar.HORIZONTAL);
        add(sb1, BorderLayout.SOUTH);
        show();
    }
}
◆ 備考

キャンバス(Canvas)

◆ サンプル
Canvas
◆ 説明

キャンバスCanvas)は、線、丸、矩形などの図形を描画する際に用いられる部品です。通常、Canvas クラスのサブクラスを定義して使用します。paint() は、show() や repaint() が呼ばれたときや、隠れていたウィンドウが表に表示されるときなどに自動的に呼び出されるメソッドです。

◆ ソース
CanvasTest.java
import java.awt.*;

class CanvasTest extends Frame {
    public static void main(String[] args) {
        new CanvasTest();
    }
    CanvasTest() {
        super("CanvasTest");
        setSize(200, 100);
        setLayout(new BorderLayout());
        MyCanvas mc1 = new MyCanvas();
        add(mc1, BorderLayout.CENTER);
        show();
    }
}

class MyCanvas extends Canvas {
    public void paint(Graphics g) {
        g.drawLine(10, 10, 120, 40);
    }
}
◆ 備考
◆ サンプル
Menu
◆ 説明

メニューは、主に下記の4種類のオブジェクトから構成されます。

クラス説明
MenuBarメニューバー
Menuメニュー。子アイテムを持つメニュー項目。
MenuItemメニューアイテム。子アイテムを持たないメニュー項目。
CheckboxMenuItemチェックタイプのメニューアイテム。

実行例では、下記の階層構造をもつメニューバーを実装しています。

 MenuBar
├□ File
│├○ Open Ctrl+O
│└○ Exit
└□ View
 ├◎ Status Bar
 └□ Size
  ├○ Large
  └○ Small
 MenuBar
 Menu
 MenuItem
 CheckboxMenuItem
◆ ソース
MenuTest.java
import java.awt.*;
import java.awt.event.*;

class MenuTest extends Frame implements ActionListener, ItemListener {
    public static void main(String[] args) {
        new MenuTest();
    }
    MenuTest() {
        setTitle("MenuTest");
        setSize(200, 120);
        setLayout(new FlowLayout());
        MenuBar menuBar = new MenuBar();
        setMenuBar(menuBar);
        // [File]
        Menu menuFile = new Menu("File");
        menuFile.addActionListener(this);
        menuBar.add(menuFile);
        // [File]-[Open]
        MenuItem menuOpen = new MenuItem("Open...", new MenuShortcut('O'));
        menuFile.add(menuOpen);
        // [File]-[----]
        menuFile.addSeparator();
        // [File]-[Exit]
        MenuItem menuExit = new MenuItem("Exit");
        menuFile.add(menuExit);
        // [View]
        Menu menuView = new Menu("View");
        menuView.addActionListener(this);
        menuBar.add(menuView);
        // [View]-[Status Bar]
        CheckboxMenuItem menuStatusBar = new CheckboxMenuItem("Status Bar");
        menuStatusBar.addItemListener(this);
        menuView.add(menuStatusBar);
        // [View]-[Size]
        Menu menuSize = new Menu("Size");
        menuSize.addActionListener(this);
        menuView.add(menuSize);
        // [View]-[Size]-[Large]
        MenuItem menuSizeLarge = new MenuItem("Large");
        menuSize.add(menuSizeLarge);
        // [View]-[Size]-[Small]
        MenuItem menuSizeSmall = new MenuItem("Small");
        menuSize.add(menuSizeSmall);
        show();
    }
    public void actionPerformed(ActionEvent e) {
        System.out.println(e.getActionCommand());
    }
    public void itemStateChanged(ItemEvent e) {
        CheckboxMenuItem menu = (CheckboxMenuItem)e.getSource();
        if (menu.getState()) {
            System.out.println(menu.getLabel() + " SELECTED");
        } else {
            System.out.println(menu.getLabel() + " DESELECTED");
        }
    }
}
◆ 備考

ダイアログ(Dialog)

◆ サンプル
Dialog
◆ 説明

ダイアログ を表示するには、Dialog クラスのサブクラスを作成してダイアログの名前や機能を定義し、これを show() メソッドで表示します。ダイアログの作り方や、作法、ダイアログ上への部品の配置方法はフレームと同様です。

◆ ソース
DialogTest.java
import java.awt.*;
import java.awt.event.*;

class DialogTest extends Frame {
    public static void main(String[] args) {
        new DialogTest();
    }
    DialogTest() {
        super("DialogTest");
        setSize(200, 100);
        MyDialog dlg = new MyDialog(this);
        dlg.show();
        show();
    }
}

class MyDialog extends Dialog implements ActionListener {
    MyDialog(Frame owner) {
        super(owner);
        setLayout(new FlowLayout());
        Button b1 = new Button("OK");
        b1.addActionListener(this);
        add(b1);
        setTitle("MyDialog");
        setSize(80, 80);
    }
    public void actionPerformed(ActionEvent e) {
        hide();
    }
}

http://www.tohoho-web.com/java/awt.htm
初版:2004年6月26日、最終更新:2004年6月26日
[戻る] [前に] [次に]