
Swingアプリ開発ステップアップガイド
Swing初級から中級者向けに、4つの異なるアプリケーションを段階的に開発する方法を解説します。各アプリケーションは独立しており、難易度順に並んでいます。 ① […]
Swingアプリケーションを構築する上で欠かせない基本的なコンポーネントの使い方を学びましょう。これらのコンポーネントを組み合わせることで、対話型のGUIアプリケーションを作成できます。まずは前回のJFrameと学習するコンポーネントの位置付けを確認します。
import javax.swing.*;
public class LabelExample {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame("JLabelの例");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// JLabelの作成
JLabel label = new JLabel("これはラベルです");
// ラベルの配置(中央揃え)
label.setHorizontalAlignment(SwingConstants.CENTER);
frame.add(label);
frame.setVisible(true);
});
}
}
メソッド | 説明 |
---|---|
setText(String text) | 表示するテキストを設定 |
setIcon(Icon icon) | 表示するアイコンを設定 |
setHorizontalAlignment(int alignment) | 水平方向の配置を設定 |
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ButtonExample {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame("JButtonの例");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new java.awt.FlowLayout());
// JButtonの作成
JButton button = new JButton("クリックしてください");
// ボタンにアクションリスナーを追加
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(frame, "ボタンがクリックされました!");
}
});
frame.add(button);
frame.setVisible(true);
});
}
}
メソッド | 説明 |
---|---|
addActionListener(ActionListener l) | クリックイベントのリスナーを追加 |
setEnabled(boolean enabled) | ボタンの有効/無効を設定 |
setText(String text) | ボタンに表示するテキストを設定 |
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TextFieldExample {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame("JTextFieldの例");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new java.awt.FlowLayout());
// JTextFieldの作成(20文字分の幅)
JTextField textField = new JTextField(20);
JButton button = new JButton("送信");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String inputText = textField.getText();
JOptionPane.showMessageDialog(frame, "入力されたテキスト: " + inputText);
}
});
frame.add(textField);
frame.add(button);
frame.setVisible(true);
});
}
}
メソッド | 説明 |
---|---|
getText() | 入力されたテキストを取得 |
setText(String text) | テキストを設定 |
setEditable(boolean editable) | 編集可能かどうかを設定 |
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CombinedComponentsExample {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame("コンポーネント組み合わせ例");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new FlowLayout());
// ラベル
JLabel label = new JLabel("名前を入力してください:");
// テキストフィールド
JTextField textField = new JTextField(20);
// ボタン
JButton button = new JButton("送信");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String name = textField.getText();
if (!name.isEmpty()) {
JOptionPane.showMessageDialog(frame,
"こんにちは、" + name + "さん!",
"挨拶",
JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(frame,
"名前を入力してください",
"エラー",
JOptionPane.ERROR_MESSAGE);
}
}
});
// コンポーネントをフレームに追加
frame.add(label);
frame.add(textField);
frame.add(button);
frame.setVisible(true);
});
}
}
各コンポーネントは以下のようにカスタマイズできます:
// フォントの設定
label.setFont(new Font("MS Gothic", Font.BOLD, 16));
// 前景色(文字色)の設定
button.setForeground(Color.WHITE);
// 背景色の設定
button.setBackground(Color.BLUE);
// ツールチップの設定
textField.setToolTipText("ここに名前を入力してください");
次の章では、これらのコンポーネントを適切に配置するための「レイアウトマネージャーの基礎」について学びます。コンポーネントを効果的に配置することで、より使いやすいGUIを作成できるようになります。