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

JavaでJOptionPaneのメッセージダイアログに長いテキストを表示する方法

JOptionPaneは、JComponentクラスのサブクラスであり、モーダルダイアログボックスを作成・カスタマイズするためのstaticメソッドを多数提供しています。コードの複雑さを抑えられるため、JDialogクラスの代わりにJOptionPaneクラスを使用するのが一般的です。JOptionPaneは、4種類の標準アイコン(質問、情報、警告、エラー)や、ユーザーが指定したカスタムアイコンを使ってダイアログを表示できます。

デフォルトでは、JOptionPaneのメッセージダイアログは1行の短いテキストしかサポートしていません。しかし、JTextAreaクラスを組み合わせてカスタマイズすることで、長いテキストを快適に閲覧できるメッセージダイアログを実装することが可能です。

実装例

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

public class JOptionPaneScrollTextMessage extends JFrame {
   private JButton btn;
   String msg;
   public JOptionPaneScrollTextMessage() {
      setTitle("JOptionPaneScrollTextMessage Test");
      msg = " Java is a programming language that produces software for multiple platforms.\n When a programmer writes a Java application, the compiled code\n" + "(known as bytecode) runs on most operating systems (OS), including \n Windows, Linux and Mac OS. Java derives much of its syntax \n from the C and C++" + "programming languages.\n Java was developed in the mid-1990s by James A. Gosling, a former computer scientist with Sun Microsystems.";
      btn = new JButton("Show Dialog");
      btn.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent ae) {
            JTextArea jta = new JTextArea(5, 15);
            jta.setText(msg);
            jta.setEditable(false);
            JScrollPane jsp = new JScrollPane(jta);
            JOptionPane.showMessageDialog(null, jsp);
         }
      });
      add(btn, BorderLayout.NORTH);
      setSize(400, 300);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String[] args) {
      new JOptionPaneScrollTextMessage();
   }
}

実行結果

JavaでJOptionPaneのメッセージダイアログに長いテキストを表示する方法

コードのポイント

  • JTextArea(5, 15):5行×15列のテキストエリアを生成し、複数行にわたる長文を格納します。
  • setEditable(false):テキストエリアを読み取り専用にし、ユーザーが内容を編集できないようにします。
  • JScrollPane:テキストエリアをラップすることで、表示領域を超える長文に対してスクロールバーが自動的に表示されます。
  • showMessageDialog(null, jsp):文字列の代わりにJScrollPaneを直接渡すことで、スクロール可能な長文ダイアログとして表示できます。

このように、JOptionPaneにJTextAreaとJScrollPaneを組み合わせて渡すだけで、標準の1行メッセージでは収まらない長い説明文や詳細情報も、見やすくスクロールできる形でユーザーに提示できます。

  1. JavaでJPanelのpaintComponent()メソッドを実装する方法をわかりやすく解説

    JPanelはJavaにおける軽量コンテナであり、それ自体は不可視(インビジブル)なコンポーネントとして扱われます。デフォルトのレイアウトにはFlowLayoutが採用されています。JPanelを生成した後は、Containerクラスから継承されたadd()メソッドを呼び出すことで、ボタンやラベルなどの他のコンポーネントをJPanelオブジェクトに自由に追加できます。 paintComponent()メソッドとは このメソッドは、単なる背景色の描画にとどまらず、JPanel上に独自の図形や画像などを描画したい場合に必要となります。paintComponent()メソッドはすでにJPanelクラ

  2. JavaのJToggleButton実装ガイド:ON/OFF切替ボタンの作り方を解説

    JToggleButtonとは JToggleButtonはAbstractButtonを拡張したクラスで、クリックするたびにONとOFFが切り替わるトグルボタンを実現するために使用されます。通常のボタンと異なり、押した状態を保持できるのが特徴です。 JToggleButtonの主な特徴 最初に押されたときは押し込まれた状態のままとなり、もう一度押してはじめて元の状態(押されていない状態)に戻ります。 ボタンが押されるたびにActionEventが発生します。 さらに、JToggleButtonはItemEventも発生させることができます。このイベントは、選択状態という概念を持つコンポー