Java Swing入門:初心者向け使い方ガイド

Java

Java Swing は、JavaでGUI(グラフィカルユーザーインターフェース)アプリケーションを作成するためのフレームワークです。AWTに比べて柔軟性が高く、カスタマイズしやすいことが特徴です。

この記事では、Java Swingを使ったGUIアプリケーションの基本的な作り方を初心者向けにわかりやすく解説します。


1. Swingの基本構造

Swingでアプリケーションを作成する際の基本的な流れは以下の通りです:

  1. JFrameを作成:アプリケーションのメインウィンドウを作ります。
  2. コンポーネントを追加:ボタン、テキストフィールド、ラベルなどをウィンドウに配置します。
  3. イベント処理を実装:ボタンのクリックやその他の操作に応じた処理を追加します。

2. Swingの基本的なプログラム

2-1. シンプルなウィンドウを表示する

以下のコードは、シンプルなウィンドウを表示するプログラムです。

import javax.swing.*;

public class SimpleSwing {
public static void main(String[] args) {
// JFrameの作成
JFrame frame = new JFrame("Swingの基本例");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// ウィンドウを表示
frame.setVisible(true);
}
}
  • ポイント:

2-2. ボタンを追加する

次に、ウィンドウにボタンを追加し、ボタンをクリックした際にメッセージを表示する例です。

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ButtonExample {
public static void main(String[] args) {
JFrame frame = new JFrame("ボタンの例");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// ボタンを作成
JButton button = new JButton("クリックしてください");
button.setBounds(100, 100, 200, 50); // ボタンの位置とサイズ

// ボタンのクリックイベントを追加
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(frame, "ボタンがクリックされました!");
}
});

// ボタンをフレームに追加
frame.setLayout(null); // レイアウトを無効化して自由配置
frame.add(button);

frame.setVisible(true);
}
}
  • ポイント:

3. レイアウトマネージャの活用

Swingでは、コンポーネントを自動的に整列させるためにレイアウトマネージャを使用します。以下に主要なレイアウトマネージャの例を示します。

3-1. FlowLayout

コンポーネントを左から右に順番に並べます。

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

public class FlowLayoutExample {
public static void main(String[] args) {
JFrame frame = new JFrame("FlowLayoutの例");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLayout(new FlowLayout());

frame.add(new JButton("ボタン1"));
frame.add(new JButton("ボタン2"));
frame.add(new JButton("ボタン3"));

frame.setVisible(true);
}
}

3-2. BorderLayout

コンポーネントを上下左右中央に配置します。

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

public class BorderLayoutExample {
public static void main(String[] args) {
JFrame frame = new JFrame("BorderLayoutの例");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLayout(new BorderLayout());

frame.add(new JButton("上"), BorderLayout.NORTH);
frame.add(new JButton("下"), BorderLayout.SOUTH);
frame.add(new JButton("左"), BorderLayout.WEST);
frame.add(new JButton("右"), BorderLayout.EAST);
frame.add(new JButton("中央"), BorderLayout.CENTER);

frame.setVisible(true);
}
}

3-3. GridLayout

グリッド形式でコンポーネントを配置します。

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

public class GridLayoutExample {
public static void main(String[] args) {
JFrame frame = new JFrame("GridLayoutの例");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLayout(new GridLayout(2, 2)); // 2行2列のグリッド

frame.add(new JButton("ボタン1"));
frame.add(new JButton("ボタン2"));
frame.add(new JButton("ボタン3"));
frame.add(new JButton("ボタン4"));

frame.setVisible(true);
}
}

4. 実用的なSwingプログラム

4-1. テキストフィールドとラベルの使用

以下は、テキストフィールドに入力された内容をラベルに表示する例です。

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TextFieldExample {
public static void main(String[] args) {
JFrame frame = new JFrame("テキストフィールドの例");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JTextField textField = new JTextField();
textField.setBounds(50, 50, 300, 30);

JLabel label = new JLabel("ここにテキストが表示されます");
label.setBounds(50, 100, 300, 30);

JButton button = new JButton("表示");
button.setBounds(150, 150, 100, 30);

// ボタンのクリックイベント
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text = textField.getText();
label.setText("入力されたテキスト: " + text);
}
});

frame.setLayout(null);
frame.add(textField);
frame.add(label);
frame.add(button);

frame.setVisible(true);
}
}

5. Swingを学ぶための次のステップ

  1. プロジェクトを作成する
  2. 公式ドキュメントを参照する
  3. サポートを活用する

まとめ

Java Swingを使えば、シンプルで実用的なGUIアプリケーションを簡単に作成できます。基本的なコンポーネントやレイアウトマネージャをマスターすることで、より複雑なアプリケーションを作る力を身につけることができます。

まずは小さなプロジェクトから始めて、Java Swingの可能性を広げてみてください!

コメント

タイトルとURLをコピーしました