Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaのJOptionPaneダイアログの種類とは?4つのダイアログの使い方を解説

JOptionPaneクラスとは

JOptionPaneは、JComponentクラスのサブクラスであり、シンプルなコードでモーダルダイアログボックスを作成・カスタマイズするためのstaticメソッドを多数提供しています。通常のJDialogを使用するとコードが複雑になりがちですが、JOptionPaneを使えばその複雑さを大幅に軽減できます。

また、JOptionPaneは、標準の4種類のアイコン(質問(question)情報(information)警告(warning)エラー(error))のいずれか、あるいはユーザーが指定したカスタムアイコンを表示してダイアログボックスを表示します。

JOptionPaneで表示できる4種類のダイアログ

JOptionPaneクラスでは、以下の4種類のダイアログボックスを表示できます。

  • MessageDialog(メッセージダイアログ):メッセージを表示するダイアログです。アイコンを追加してユーザーに注意を促すことも可能です。
  • ConfirmDialog(確認ダイアログ):メッセージの表示に加えて、ユーザーに質問への回答(はい/いいえなど)を求めることができるダイアログです。
  • InputDialog(入力ダイアログ):メッセージの表示に加えて、テキストの入力を受け付けることができるダイアログです。
  • OptionDialog(オプションダイアログ):上記3種類すべての機能を組み合わせた、最も汎用性の高いダイアログです。

サンプルコード

以下は、4種類のダイアログを実際に使用したサンプルコードです。

import javax.swing.*;
public class JoptionPaneTest {
    public static void main(String[] args) {
        JFrame frame = new JFrame("JoptionPane Test");
        frame.setSize(200, 200);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        // メッセージダイアログ
        JOptionPane.showMessageDialog(frame, "Hello Java");
        // 警告アイコン付きメッセージダイアログ
        JOptionPane.showMessageDialog(frame, "You have less amount, please recharge","Apocalyptic message", JOptionPane.WARNING_MESSAGE);
        // 確認ダイアログ
        int result = JOptionPane.showConfirmDialog(null, "Do you want to remove item now?");
        switch (result) {
            case JOptionPane.YES_OPTION:
            System.out.println("Yes");
            break;
            case JOptionPane.NO_OPTION:
            System.out.println("No");
            break;
            case JOptionPane.CANCEL_OPTION:
            System.out.println("Cancel");
            break;
            case JOptionPane.CLOSED_OPTION:
            System.out.println("Closed");
            break;
        }
        // 入力ダイアログ
        String name = JOptionPane.showInputDialog(null, "Please enter your name.");
        System.out.println(name);
        // オプションダイアログ(ログインフォーム)
        JTextField userField = new JTextField();
        JPasswordField passField = new JPasswordField();
        String message = "Please enter your user name and password.";
        result = JOptionPane.showOptionDialog(frame, new Object[] {message, userField, passField},
        "Login", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null);
        if (result == JOptionPane.OK_OPTION)
        System.out.println(userField.getText() + " " + new String(passField.getPassword()));
        System.exit(0);
    }
}

実行結果

上記のコードを実行すると、順番に以下のようなダイアログが表示されます。まず「Hello Java」というシンプルなメッセージダイアログ、次に警告アイコン付きのメッセージダイアログ、続いて「Yes / No / Cancel」の選択肢を持つ確認ダイアログ、名前を入力するための入力ダイアログ、そして最後にユーザー名とパスワードを入力できるオプションダイアログ(ログインフォーム)が表示されます。

JavaのJOptionPaneダイアログの種類とは?4つのダイアログの使い方を解説

JavaのJOptionPaneダイアログの種類とは?4つのダイアログの使い方を解説

JavaのJOptionPaneダイアログの種類とは?4つのダイアログの使い方を解説

JavaのJOptionPaneダイアログの種類とは?4つのダイアログの使い方を解説

JavaのJOptionPaneダイアログの種類とは?4つのダイアログの使い方を解説

まとめ

JOptionPaneを使うことで、わずか数行のコードでメッセージ表示、確認、入力受け付けといった対話的なUIを簡単に実装できます。用途に応じてshowMessageDialogshowConfirmDialogshowInputDialogshowOptionDialogの4つのメソッドを使い分けることで、Swingアプリケーションの操作性を効率よく向上させることができます。

  1. Windowsのセーフモードとは?3種類のセーフモードの違いと使い分け方を解説

    この記事では、Windowsのセーフモードとは何か、そしてセーフモードにはどのような種類があるのか(通常のセーフモード、ネットワーク付きセーフモード、コマンドプロンプト付きセーフモード)について、それぞれの意味と違いをわかりやすく解説します。 多くのWindowsユーザーにとって、セーフモードは馴染みのある機能でしょう。Windowsの不具合を診断したりトラブルシューティングを行ったりする際に、セーフモードでの起動が求められることがよくあります。ここでは、セーフモードの意味と、Windowsが提供しているセーフモードの種類について詳しく見ていきましょう。 Windows 11/10におけるセー

  2. Windowsのセーフモードとは?3種類のセーフモードの違いと使い方を徹底解説

    本記事では、Windowsのセーフモードとは何か、そしてセーフモードにはどのような種類があるのか——「セーフモード」「ネットワークありのセーフモード」「コマンドプロンプトありのセーフモード」——について、それぞれの意味と違いをわかりやすく解説します。 多くのWindowsユーザーにとって、セーフモードは馴染みのある機能でしょう。Windowsの不具合を診断したりトラブルシューティングを行ったりする際に利用することが多いからです。これまでの記事では、セーフモードでWindowsを起動する方法や、セーフモードへの直接再起動の手順をご紹介してきました。今回は改めて、セーフモードの仕組みと、Wind