SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

作って覚えるJavaプログラミングのススメ

Java入門 (4) - Swingを使ったGUIプログラミング

作って覚えるJavaプログラミングのススメ 第4回


主なコンポーネントを利用してみる

 だいぶコンポーネント類の使い方がわかってきたと思います。では、JLabel以外のコンポーネントも組み込んでみることにしましょう。

package codezine.java;

import java.awt.*;
import javax.swing.*;

public class Sample extends JFrame {
    
    public Sample(){
        this.setSize(300,200);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLayout(null);
        
        // JLabelの組み込み
        String msg0 = "<html><h2>JLabel Sample</h2>";
        JLabel label = new JLabel(msg0);
        label.setSize(200,30);
        label.setLocation(20,20);
        this.add(label);
        // JTextFieldの組み込み
        JTextField field = new JTextField();
        field.setSize(200,20);
        field.setLocation(20,50);
        this.add(field);
        // JButtonの組み込み
        JButton button = new JButton("JButton");
        button.setSize(100,25);
        button.setLocation(20,80);
        this.add(button);
        // JCheckBoxの組み込み
        JCheckBox check = new JCheckBox("JCheckBox");
        check.setSize(100,20);
        check.setLocation(20,110);
        this.add(check);
        // JRadioButtonの組み込み
        JRadioButton radio = new JRadioButton("JRadioButton");
        radio.setSize(200,20);
        radio.setLocation(20,140);
        this.add(radio);
    }

    public static void main(String[] args) {
        Sample sample = new Sample();
        sample.setVisible(true);
    }

}
主なコンポーネント類を並べて配置したところ。
主なコンポーネント類を並べて配置したところ。

 ここでは、全部で5種類のコンポーネントを作成し組み込んでいます。それぞれ次のようなクラスを使います。

  • JLabel――テキストを表示するもの。既に説明済みです。
  • JTextField――1行だけのテキストを入力するためのフィールドです。
  • JButton――クリックして何かの処理を実行させるプッシュボタンです。
  • JCheckBox――クリックしてON/OFFするチェックボタンです。
  • JRadioButton――いくつかの項目から1つを選ぶラジオボタンです。

 JButton、JCheckBox、JRadioButtonといったボタン類は、newする際にStringを引数に渡すことで、そのテキストを表示するボタンを作成できます。後は、JLabelと同様、位置や大きさを設定してaddするだけです。こうしてインスタンスを作り、ただaddするだけで、ちゃんとJButtonはマウスでクリックできますし、JCheckBoxやJRadioButtonはマウスでクリックしてON/OFFできます。

 ただし、このままでは、JButtonをクリックしても何も起こりませんし、複数のJRadioButtonを作成しても自動的に1つが選択されるようにはなりません。ここで行ったのは「その部品を用意して表示する」ということだけです。これらの動作を設定するためには、それなりの処理を別に用意する必要があります。あくまで今回行ったのは「作って表示するだけ」です。

まとめ

 JFrameとコンポーネントを使って画面にウインドウを表示するプログラムを作成しました。いろいろと新しいクラスやメソッドが登場しましたが、どれもそれほど複雑なものではありません。何度かソースコードを書いて動かしてみれば、大体の使い方がわかってくることでしょう。レイアウトマネージャに関する部分が少々わかりにくいかも知れませんが、とりあえずは「デフォルトの状態(BorderLayoutというのが設定された状態)」と「setLayout(null)でレイアウトマネージャをOFFにした状態」の使い方が分かれば、現段階ではOKと考えましょう。これで簡単なウインドウのレイアウトぐらいはできるようになりますから。

 ここまでやってみて「なんだ、Swingは難しいというけど、意外に簡単じゃないか」と思われたかもしれません。基本的なコンポーネントを組み込んでレイアウトする、という最も基本的な部分に関しては、AWTもSwingもたいして違いはなく、割と直感的に作れるようになっているのです。

 ただし、作ったコンポーネントを実際に利用するとなると、少しずつ複雑な仕組みを理解していかなければいけなくなります。例えばボタンをクリックして何かを実行させるには、「イベント処理」というものを理解しなければいけません。次回は、このイベント処理を中心に、コンポーネントの使い方を説明していくことにしましょう。

次の記事

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
作って覚えるJavaプログラミングのススメ連載記事一覧

もっと読む

この記事の著者

掌田 津耶乃(ショウダ ツヤノ)

三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/2135 2008/03/10 17:40

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー