工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java Swing チュートリアル:堅牢な GUI アプリケーション構築

Java の Swing とは?

Java Swing は、Abstract Window Toolkit(AWT)を拡張した洗練されたプラットフォーム非依存の GUI ツールキットです。ボタン、テーブル、ツリーなど豊富なウィジェットを提供し、基本コンポーネントを再発明せずに洗練されたデスクトップアプリケーションを作成できます。

Java Foundation Classes(JFC)の一部として、Swing は AWT のコア機能をベースにしつつ、軽量でカスタマイズ可能なコンポーネントを提供します。その結果、ルックアンドフィール変更、カスタムペインティング、データバインディングなど高度な UI 機能をサポートするフレームワークになっています。

このチュートリアルで習得する内容:

Java Swing クラス階層図

Java Swing チュートリアル:堅牢な GUI アプリケーション構築

すべての Swing コンポーネントは JComponent を継承し、コンテナクラスに追加できます。

コンテナクラスとは?

コンテナクラスはあらゆる Swing UI の骨格です—他のコンポーネントを保持し配置します。最低限、Swing アプリケーションには1つのコンテナが必要です。主要なコンテナタイプは3つ:

  1. JPanel – 軽量で非ウィンドウのコンテナ。コンポーネントのグループ化に使用
  2. JFrame – タイトルバー、ボーダー、システムメニューを持つトップレベルウィンドウ
  3. JDialog – モーダルまたはモードレスのポップアップウィンドウ。ユーザープロンプト用

Java の GUI とは?

Java の グラフィカルユーザーインターフェース(GUI) は、ユーザーがアプリケーションと対話するための直感的なビジュアル層を提供します。ボタン、ラベル、テキストフィールドなどのウィジェットを組み立てることで、開発者は内部ロジックを抽象化した魅力的な体験を創造します。

Java で GUI を構築する手順(ステップバイステップ)

基本ウィンドウの作成からコンポーネント追加まで、実践的なウォークスルーを示します。

ステップ 1 – 新しい Java ファイルを作成

以下のコードをエディタにコピー:

import javax.swing.*;
class GuiDemo {
    public static void main(String[] args) {
        JFrame frame = new JFrame("My First GUI");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 300);
        JButton button = new JButton("Press");
        frame.getContentPane().add(button);
        frame.setVisible(true);
    }
}

ステップ 2 – コンパイルと実行

ファイルを保存し、javac GuiDemo.java でコンパイル、java GuiDemo で実行。ボタン1つを含む 300×300 のウィンドウが表示されます。

ステップ 3 – もう1つボタンを追加

コードを修正して2つ目のボタンを追加:

import javax.swing.*;
class GuiDemo {
    public static void main(String[] args) {
        JFrame frame = new JFrame("My First GUI");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 300);
        JButton button1 = new JButton("Button 1");
        JButton button2 = new JButton("Button 2");
        frame.getContentPane().add(button1);
        frame.getContentPane().add(button2);
        frame.setVisible(true);
    }
}

ステップ 4 – レイアウトの問題を観察

実行すると2つのボタンが重なって表示されます。JFrame のデフォルトレイアウトマネージャーは BorderLayout で、コンポーネントを5つの領域に配置します。領域を指定しないと、後から追加したコンポーネントが前のものを置き換えてしまいます。

Java レイアウトマネージャー

レイアウトマネージャーはコンテナ内でのコンポーネント配置を制御します。適切なマネージャー選択はレスポンシブで保守しやすい GUI に不可欠です。よく使われるマネージャー:

BorderLayout

BorderLayout はコンテナを NORTH、SOUTH、EAST、WEST、CENTER の5領域に分割します。JFrame のデフォルトマネージャーです。

Java Swing チュートリアル:堅牢な GUI アプリケーション構築

FlowLayout

FlowLayout はコンポーネントを順番に1行に配置し、必要に応じて次の行に折り返します。JPanel のデフォルトマネージャーです。

Java Swing チュートリアル:堅牢な GUI アプリケーション構築

GridBagLayout

GridBagLayout は最大の柔軟性を提供し、コンポーネントが複数行・列を占有し、グリッド内で精密に配置できます。

Java Swing チュートリアル:堅牢な GUI アプリケーション構築

例:シンプルなチャットウィンドウの構築

以下はメニュー、テキストエリア、コントロールパネルを組み合わせた統合的なチャットインターフェースを示す完全プログラムです。

Java Swing チュートリアル:堅牢な GUI アプリケーション構築

解答を見る前に自分でコーディングしてみてください。

// メニュー、テキストエリア、コントロールを含む完全な Swing アプリケーション
import javax.swing.*;
import java.awt.*;
class GuiDemo {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Chat Frame");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 400);
        // メニューバー
        JMenuBar menuBar = new JMenuBar();
        JMenu fileMenu = new JMenu("FILE");
        JMenu helpMenu = new JMenu("Help");
        menuBar.add(fileMenu);
        menuBar.add(helpMenu);
        JMenuItem openItem = new JMenuItem("Open");
        JMenuItem saveItem = new JMenuItem("Save as");
        fileMenu.add(openItem);
        fileMenu.add(saveItem);
        // FlowLayout(デフォルト)のボトムパネル
        JPanel panel = new JPanel();
        panel.add(new JLabel("Enter Text"));
        panel.add(new JTextField(10));
        panel.add(new JButton("Send"));
        panel.add(new JButton("Reset"));
        // 中央のテキストエリア
        JTextArea textArea = new JTextArea();
        // BorderLayout でフレームにコンポーネント追加
        frame.getContentPane().add(BorderLayout.SOUTH, panel);
        frame.getContentPane().add(BorderLayout.NORTH, menuBar);
        frame.getContentPane().add(BorderLayout.CENTER, textArea);
        frame.setVisible(true);
    }
}

Java

  1. C#でPLCnextコンソールアプリケーションを開発:初心者ガイド
  2. JlinkでPLCnext Control上のJava 9アプリを最適化
  3. Microsoft AzureへのJava EEアプリケーションデプロイ:ステップバイステップガイド
  4. VHDLで文字列リストを作成する: ベスト・プラクティスと実装例
  5. Java配列チュートリアル:宣言、生成、初期化の完全ガイド
  6. Javaオブジェクト配列の作成:ステップバイステップガイド
  7. Java 乱数生成:Random クラスと Math.random 実践ガイド
  8. Java BufferedReader でファイル読み込み:実践ガイドと例
  9. JavaでcharをStringに変換する方法:実践例とベストプラクティス
  10. Javaで再帰を使って文字列を反転させる方法
  11. Java 10のアプリケーションクラスデータ共有(AppCDS)で起動高速化