コンポーネントを組み込む
では、続いてコンポーネント類を組み込んでみましょう。もっとも基本的なコンポーネントとして、ラベル、入力フィールド、プッシュボタンをそれぞれ配置してみます。
package jp.allabout.java;
import java.awt.*;
import javax.swing.*;
public class SampleApp extends JFrame {
private static final long serialVersionUID = 1L;
private JLabel label;
private JTextField field;
private JButton button;
public SampleApp(){
this.setSize(new Dimension(300,150));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
label = new JLabel("This is Sample.");
label.setFont(new Font("Serif",Font.BOLD,24));
this.add(label,BorderLayout.NORTH);
field = new JTextField();
this.add(field,BorderLayout.CENTER);
button = new JButton("click");
this.add(button,BorderLayout.SOUTH);
}
public static void main(String[] args) {
new SampleApp().setVisible(true);
}
}
コンポーネントを組み込んだSwingのウインドウ。 |
ここで使っているのは、それぞれ「JLabel」「JTextField」「JButton」というコンポーネントです。既にAWTを使っていれば、基本的な使い方はほとんど変わらないことがわかるでしょう。それぞれnewでインスタンスを作成し、addでJFrameに組み込んでいますね。また、組み込む位置として、BorderLayout.NORTHというようにBorderLayoutのクラスフィールドを指定しています。ということは? JFrameにも標準でBorderLayoutが組み込まれているということですね。また、JLabelの表示フォントを設定するのに、Fontクラスのインスタンスを用意し、setFontしています。
これらのことからもわかるように、SwingでもAWTの多くの機能はそのまま引き継がれ使うことができます。実をいえば、Swingのコンポーネントは、AWTのコンポーネントを継承して作成されているのです。ですから、レイアウトマネージャや、フォントのためのFontクラス、あるいは色を指定するColorクラスなど、多くのクラスはAWTとまったく共通なのです。