Javaプログラミング/Javaプログラミング関連情報

コンポーネントを使おう!

今回は、実際にJFrameに主なコンポーネントを組み込んで使ってみましょう。

執筆者:掌田 津耶乃

コンポーネントの基本的な操作


前回、JFrameを使ってウインドウを表示し、コンポーネントを組み込むまでを行いました。今回は、コンポーネントの利用についてもう少し掘り下げていきましょう。といっても、実をいえばコンポーネントの基本的な使い方は、AWTの場合とそれほど違いはありません。実際に何度かソースコードを書いてみればすぐに飲み込める程度のものです。

まずは、基本的なコンポーネントの組み込みからです。といっても、既に組み込みそのモノについては前回やっていますから、今回はレイアウトマネージャを変更して組み込んでみましょう。

package jp.allabout.java;

import java.awt.*;
import java.awt.event.*;

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,200));
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setLayout(null);
    label = new JLabel("This is Sample.");
    label.setBounds(new Rectangle(20,20,200,20));
    label.setFont(new Font("Serif",Font.BOLD,24));
    this.add(label);
    field = new JTextField();
    field.setBounds(new Rectangle(20,60,250,20));
    this.add(field);
    button = new JButton("click");
    button.setBounds(new Rectangle(100,100,100,25));
    this.add(button);
    button.addActionListener(new ActionListener(){

      @Override
      public void actionPerformed(ActionEvent e) {
        label.setText(field.getText());
      }

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

レイアウトマネージャをOFFにして、自由にレイアウトしたところ。


これは、レイアウトマネージャをnullにして、それぞれのコンポーネントの位置と大きさを指定して組み込んだものです。ここでは、this.setLayout(null); としてレイアウトマネージャをOFFにしています。このように、JFrameのsetLayoutを変更することで、使用するレイアウトマネージャを変えることができます。

これは、AWTとまったく同じですが、内部的には大きく違っています。this.setLayoutを呼び出すと、JFrameは、JFrame自身ではなく、そのコンテントペインのレイアウトマネージャを変更するのです。見かけはAWTと同じですが、Swingでは常に「コンテントペインに対し組み込みを行っている」ということを忘れないようにしましょう。

また、ここではJButtonをクリックした際の処理を組み込んでいますね。JButtonをクリックしたときのイベント処理は、AWTのButtonと同様  java.awt.eventパッケージの「ActionListener」を使って行います。あらかじめactionPerformedメソッドを実装してイベント処理を用意しておき、JButtonのaddActionListenerを使ってインスタンスを組み込みます。このあたりも、AWTとまったく同じですから悩むことはないでしょう。


  • 1
  • 2
  • 3
  • 4
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます