ダイアログの表示
このページには、以下のサンプルを掲載しています。
下の項目をクリックをすると各サンプルにジャンプします。
※2週間以内の新着記事はNewアイコン、更新記事はUpアイコンが表示されます。
- メッセージダイアログの表示
- メッセージの改行
- 色付きメッセージ
- インフォメーションダイアログ
- 警告ダイアログ
- エラーダイアログ
- アイコンの設定
- アイコンなしのダイアログ
- 確認ダイアログ
- ボタン表示名の変更1
- ボタン表示名の変更2
- アイコンボタン
アプレット上からダイアログを表示するサンプルです。このページのサンプルでは、初期メソッドでいきなりダイアログの表示を行っていますが、
アプレットプログラム内でユーザアクションに対してダイアログでメッセージの表示を行ったりプログラム内のエラーチェックなどでエラーメッセージや
警告メッセージを出すなどいろいろな場面で応用できます。
1. ダイアログの表示
[ サンプルプログラムのソースコード - DaialogSample01.java - ]
- import java.awt.Container;
- import javax.swing.JApplet;
- import javax.swing.JOptionPane;
- public class DaialogSample01 extends JApplet {
- private static final long serialVersionUID = 1L;
- private static Container c;
-
- public void init() {
- c = getContentPane();
- JOptionPane.showMessageDialog(c.getParent(), "ダイアログメッセージの表示");
- }
- }
|
[ サンプルプログラムの実行結果 ]
[ サンプルプログラムの解説 ]
アプレット上でダイアログを表示するには、JOptionPaneクラスのstaticメソッドshowMessageDialogを使います。
このメソッドでは、第一引数としてContainerオブジェクトを指定する必要があります。そのため12行目でJAppletクラスのメソッドであるgetContentPaneを使って
このアプレットのContainerオブジェクトを取得しています。showMessageDialogメソッドの第2引数に表示するメッセージをStringオブジェクトで指定してあげると
ダイアログ内に表示するメッセージが指定できます。
2. メッセージの改行
[ サンプルプログラムのソースコード その1 - DaialogSample02A.java - ]
- import java.awt.Container;
- import javax.swing.JApplet;
- import javax.swing.JOptionPane;
- public class DaialogSample02A extends JApplet {
- private static final long serialVersionUID = 1L;
- private static Container c;
- public void init() {
- c = getContentPane();
- JOptionPane.showMessageDialog(c.getParent(),
- "<HTML>ダイアログメッセージ<BR />の表示</HTML>");
- }
- }
|
[ サンプルプログラムのソースコード その2 - DaialogSample02B.java - ]
- import java.awt.Container;
- import javax.swing.JApplet;
- import javax.swing.JOptionPane;
- public class DaialogSample02B extends JApplet {
- private static final long serialVersionUID = 1L;
- private static Container c;
- public void init() {
- c = getContentPane();
- JOptionPane.showMessageDialog(c.getParent(), "ダイアログメッセージ\nの表示");
- }
- }
|
[ サンプルプログラムの実行結果 ]
[ サンプルプログラムの解説 ]
ダイアログ内に表示するメッセージを改行したい場合は、HTMLで記述する方法と改行コードを使う方法があります。
HTMLを使う場合は、DialogSmaple02A.java赤字部分のように改行位置に<br />タグを差し込みます。
改行コードを使う場合は、DialogSample02B.java赤字部分のように改行位置に改行コード「\n」を差し込みます。
3. 色付きメッセージ
[ サンプルプログラムのソースコード - DaialogSample03.java - ]
- import java.awt.Container;
- import javax.swing.JApplet;
- import javax.swing.JOptionPane;
- public class DaialogSample03 extends JApplet {
- private static final long serialVersionUID = 1L;
- private static Container c;
- public void init() {
- c = getContentPane();
- JOptionPane.showMessageDialog(c.getParent(),
- "<HTML><FONT COLOR='GREEN'>ダイアログ</FONT>" +
- "<FONT COLOR='BLUE'>メッセージ</FONT>" +
- "<BR />の表示</HTML>");
- }
- }
|
[ サンプルプログラムの実行結果 ]
[ サンプルプログラムの解説 ]
ダイアログメッセージ内の文字色を変えたい場合、表示メッセージをHTMLで記述する方法があります。
上記サンプル赤字部分のように<font>タグのcolor属性を使って文字色を変更できます。
4. インフォメーションダイアログ
[ サンプルプログラムのソースコード - DaialogSample04.java - ]
- import java.awt.Container;
- import javax.swing.JApplet;
- import javax.swing.JOptionPane;
- public class DaialogSample04 extends JApplet {
- private static final long serialVersionUID = 1L;
- private static Container c;
- public void init() {
- c = getContentPane();
- JOptionPane.showMessageDialog(
- c,
- "ダイアログメッセージの表示",
- "インフォメーションダイアログサンプル",
- JOptionPane.INFORMATION_MESSAGE);
- }
- }
|
[ サンプルプログラムの実行結果 ]
[ サンプルプログラムの解説 ]
JOptionPane.showMessageDialogの第3引数でダイアログウィンドウのタイトルを設定できます。第4引数にダイアログの種類を指定します。
サンプルでは、インフォメーションダイアログを指定しています。インフォメーションダイアログを指定するとダイアログ内のアイコンが
インフォメーションを表すアイコンになります。インフォメーションダイアログを表す定数はJOptionPane.INFOMATION_MESSAGEになります。
5. 警告ダイアログ
[ サンプルプログラムのソースコード - DaialogSample05.java - ]
- import java.awt.Container;
- import javax.swing.JApplet;
- import javax.swing.JOptionPane;
- public class DaialogSample05 extends JApplet {
- private static final long serialVersionUID = 1L;
- private static Container c;
- public void init() {
- c = getContentPane();
- JOptionPane.showMessageDialog(
- c.getParent(),
- "ダイアログメッセージの表示",
- "警告ダイアログサンプル",
- JOptionPane.WARNING_MESSAGE);
- }
- }
|
[ サンプルプログラムの実行結果 ]
[ サンプルプログラムの解説 ]
警告ダイアログは、インフォメーションダイアログとほとんど同じですが、ダイアログに表示されるアイコンが警告を表すアイコンになります。
警告ダイアログを表示するには、JOptionPane.showMessageDialogメソッドの第4引数に警告を表す定数JOptionPane.WARNING_MESSAGEを指定します。
6. エラーダイアログ
[ サンプルプログラムのソースコード - DaialogSample06.java - ]
- import java.awt.Container;
- import javax.swing.JApplet;
- import javax.swing.JOptionPane;
- public class DaialogSample06 extends JApplet {
- private static final long serialVersionUID = 1L;
- private static Container c;
- public void init() {
- c = getContentPane();
- JOptionPane.showMessageDialog(
- c.getParent(),
- "ダイアログメッセージの表示",
- "エラーダイアログサンプル",
- JOptionPane.ERROR_MESSAGE);
- }
- }
|
[ サンプルプログラムの実行結果 ]
[ サンプルプログラムの解説 ]
エラーダイアログは、ダイアログに表示されるアイコンがエラーを表すアイコンになります。
エラーダイアログを表示するには、JOptionPane.showMessageDialogメソッドの第4引数にエラーを表す定数JOptionPane.ERROR_MESSAGEを指定します。
7. アイコンの設定
[ サンプルプログラムのソースコード - DaialogSample07.java - ]
- import java.awt.Container;
- import java.net.MalformedURLException;
- import java.net.URL;
- import javax.swing.ImageIcon;
- import javax.swing.JApplet;
- import javax.swing.JOptionPane;
- public class DaialogSample07 extends JApplet {
- private static final long serialVersionUID = 1L;
- private static Container c;
- public void init() {
- try {
- c = getContentPane();
- URL url;
- url = new URL(getCodeBase() + "icon/test.png");
- ImageIcon icon = new ImageIcon(url);
- JOptionPane.showMessageDialog(
- c.getParent(),
- "ダイアログメッセージの表示",
- "エラーダイアログサンプル",
- JOptionPane.WARNING_MESSAGE,
- icon);
- } catch ( MalformedURLException e ) {
- e.printStackTrace();
- }
- }
- }
|
[ サンプルプログラムの実行結果 ]
[ サンプルプログラムの解説 ]
ダイアログ内のアイコンを指定するには、まずアイコンオブジェクトを生成します(18、19行目)
生成したアイコンオブジェクトをJOptionPane.showMessageDialogメソッドの第5引数に設定すると
生成したアイコンオブジェクトのイメージがダイアログ内に貼り付けられます。
8. アイコンなしのダイアログ
[ サンプルプログラムのソースコード - DaialogSample08.java - ]
- import java.awt.Container;
- import javax.swing.JApplet;
- import javax.swing.JOptionPane;
- public class DaialogSample08 extends JApplet {
- private static final long serialVersionUID = 1L;
- private static Container c;
- public void init() {
- c = getContentPane();
- JOptionPane.showMessageDialog(
- c.getParent(),
- "ダイアログメッセージの表示",
- "アイコンなしのダイアログサンプル",
- JOptionPane.PLAIN_MESSAGE,
- null);
- }
- }
|
[ サンプルプログラムの実行結果 ]
[ サンプルプログラムの解説 ]
アイコンなしのダイアログを表示するには、JOptionPane.showMessageDialogメソッドの第4引数にJOptionPane.PLAIN_MASSAGEを設定します。
第5引数には、アイコンを表示しないのでnullを設定しています。
9. 確認ダイアログ
[ サンプルプログラムのソースコード - DaialogSample09A.java - ]
- import java.awt.BorderLayout;
- import java.awt.Canvas;
- import java.awt.Color;
- import java.awt.Container;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.image.BufferedImage;
- import javax.swing.JApplet;
- import javax.swing.JOptionPane;
- public class DaialogSample09A extends JApplet {
- private static final long serialVersionUID = 1L;
- private static Container c;
- private Canvas canvas;
- private BufferedImage bi;
- private Graphics2D offs;
- private int grpWidth = 250;
- private int grpHeight = 100;
- public void init() {
- bi = new BufferedImage(
- grpWidth,
- grpHeight,
- BufferedImage.TYPE_INT_ARGB);
- offs = (Graphics2D) bi.getGraphics();
- offs.setBackground(Color.WHITE);
- offs.clearRect(0,0,grpWidth, grpHeight);
- c = getContentPane();
- canvas = new Canvas(){
- private static final long serialVersionUID = 1L;
- public void paint(Graphics g) {
- g.drawImage(bi, 0, 0, null);
- }
- };
- setLayout(new BorderLayout());
- add(canvas, BorderLayout.CENTER);
- int ret = JOptionPane.showConfirmDialog(
- c.getParent(),
- "ダイアログ内表示メッセージ",
- "確認ダイアログサンプルA",
- JOptionPane.YES_NO_CANCEL_OPTION,
- JOptionPane.PLAIN_MESSAGE);
- offs.setColor(Color.BLACK);
- if ( ret == JOptionPane.YES_OPTION ) {
- offs.drawString("確認ダイアログで「はい」が押されたよ", 10, 10);
- } else if ( ret == JOptionPane.NO_OPTION ) {
- offs.drawString("確認ダイアログで「いいえ」が押されたよ", 10, 10);
- } else if ( ret == JOptionPane.CANCEL_OPTION ) {
- offs.drawString("確認ダイアログで「取消」が押されたよ", 10, 10);
- }
- }
- }
|
[ サンプルプログラムの実行結果 ]
JOptionPane.YES_NO_CANCEL_OPTION
JOptionPane.YES_NO_OPTION
JOptionPane.OK_CANCEL_OPTION
|
[ サンプルプログラムの解説 ]
確認ダイアログを表示するには、JOptionPane.showConfirmDialogを使います。このダイアログでは、
戻り値としてダイアログで押されたボタンに対応する値が帰ってきます。
サンプルでは、押されたボタンによってアプレット画面内の描画領域に押されたボタンの名前を表示しています。
ボタンの種類第4引数で指定できます。DaialogSample09Aでは、JOptionPane.YES_NO_CANCEL_OPTIONを指定しています。
この値を設定すると確認ダイアログ内に「はい」「いいえ」「取り消し」の3種類のボタンが表示されます。
43行目をJOptionPane.YES_NO_OPTIONに変えるとダイアログ内に表示されるボタンは「はい」と「いいえ」になります。
- :
- "確認ダイアログサンプルB",
- JOptionPane.YES_NO_OPTION,
- JOptionPane.PLAIN_MESSAGE);
- :
|
JOptionPane.OK_CANCEL_OPTIONに変えると「了解」「取り消し」ボタンとなります。
- :
- "確認ダイアログサンプルB",
- JOptionPane.YES_NO_OPTION,
- JOptionPane.PLAIN_MESSAGE);
- :
|
10. ボタン表示名の変更1
[ サンプルプログラムのソースコード - DaialogSample10.java - ]
- import java.awt.BorderLayout;
- import java.awt.Canvas;
- import java.awt.Color;
- import java.awt.Container;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.image.BufferedImage;
- import javax.swing.JApplet;
- import javax.swing.JOptionPane;
- public class DaialogSample10 extends JApplet {
- private static final long serialVersionUID = 1L;
- private static Container c;
- private Canvas canvas;
- private BufferedImage bi;
- private Graphics2D offs;
- private int grpWidth = 200;
- private int grpHeight = 100;
- public void init() {
- bi = new BufferedImage(
- grpWidth,
- grpHeight,
- BufferedImage.TYPE_INT_ARGB);
- offs = (Graphics2D) bi.getGraphics();
- offs.setBackground(Color.WHITE);
- offs.clearRect(0,0,grpWidth, grpHeight);
- c = getContentPane();
- canvas = new Canvas(){
- private static final long serialVersionUID = 1L;
- public void paint(Graphics g) {
- g.drawImage(bi, 0, 0, null);
- }
- };
- setLayout(new BorderLayout());
- add(canvas, BorderLayout.CENTER);
- String[] btns = { "玄武", "青龍", "朱雀","白虎" };
- int ret = JOptionPane.showOptionDialog(
- c.getParent(),
- "ダイアログ内表示メッセージ",
- "ダイアログタイトル",
- JOptionPane.DEFAULT_OPTION,
- JOptionPane.PLAIN_MESSAGE,
- null,
- btns,
- null);
- offs.setColor(Color.BLACK);
- for ( int i = 0; i < btns.length; i++ ) {
- if ( ret == i ) {
- offs.drawString("確認ダイアログで「"+btns[i]+"」が押されたよ", 10, 10);
- }
- }
- }
- }
|
[ サンプルプログラムの実行結果 ]
[ サンプルプログラムの解説 ]
ダイアログ内のボタン表示名を変更するには、JOptionPane.showOptionDialogを使います。
JOptionPane.showOptionDialogの第7引数に指定できます。Stringオブジェクトの配列を渡すとダイアログ内の
左のボタンから順番に配列の文字列が設定されていきます。
11. ボタン表示名の変更2
[ サンプルプログラムのソースコード - DaialogSample11.java - ]
- import java.awt.BorderLayout;
- import java.awt.Canvas;
- import java.awt.Color;
- import java.awt.Container;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.image.BufferedImage;
- import javax.swing.JApplet;
- import javax.swing.JOptionPane;
- public class DaialogSample11 extends JApplet {
- private static final long serialVersionUID = 1L;
- private static Container c;
- private Canvas canvas;
- private BufferedImage bi;
- private Graphics2D offs;
- private int grpWidth = 200;
- private int grpHeight = 100;
- public void init() {
- bi = new BufferedImage(
- grpWidth,
- grpHeight,
- BufferedImage.TYPE_INT_ARGB);
- offs = (Graphics2D) bi.getGraphics();
- offs.setBackground(Color.WHITE);
- offs.clearRect(0,0,grpWidth, grpHeight);
- c = getContentPane();
- canvas = new Canvas(){
- private static final long serialVersionUID = 1L;
- public void paint(Graphics g) {
- g.drawImage(bi, 0, 0, null);
- }
- };
- setLayout(new BorderLayout());
- add(canvas, BorderLayout.CENTER);
- String[] btns = {
- "<HTML>京都<BR />KYOTO<HTML>",
- "<HTML>東京<BR />TOKYO<HTML>",
- "<HTML>北海道<BR />HOKKAIDO<HTML>",
- "<HTML>福岡<BR />FUKUOKA<HTML>" };
- int ret = JOptionPane.showOptionDialog(
- c.getParent(),
- "ダイアログ内表示メッセージ",
- "ダイアログタイトル",
- JOptionPane.DEFAULT_OPTION,
- JOptionPane.PLAIN_MESSAGE,
- null,
- btns,
- null);
- offs.setColor(Color.BLACK);
- for ( int i = 0; i < btns.length; i++ ) {
- if ( ret == i ) {
- offs.drawString("確認ダイアログで「"+btns[i]+"」が押されたよ", 10, 10);
- }
- }
- }
- }
|
[ サンプルプログラムの実行結果 ]
[ サンプルプログラムの解説 ]
JOptionPane.showOptionDialogの第7引数に渡すStringオブジェクトの配列をHTMLで記述するとダイアログ内の
ボタンに表示される内容を改行したり1文字ずつ色を変えたりできます。サンプルでは、改行をしています。
12. アイコンボタン
[ サンプルプログラムのソースコード - DaialogSample12.java - ]
- import java.awt.BorderLayout;
- import java.awt.Canvas;
- import java.awt.Color;
- import java.awt.Container;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.image.BufferedImage;
- import java.net.MalformedURLException;
- import java.net.URL;
- import javax.swing.ImageIcon;
- import javax.swing.JApplet;
- import javax.swing.JOptionPane;
- public class DaialogSample12 extends JApplet {
- private static final long serialVersionUID = 1L;
- private static Container c;
- private Canvas canvas;
- private BufferedImage bi;
- private Graphics2D offs;
- private int grpWidth = 200;
- private int grpHeight = 100;
- public void init() {
- bi = new BufferedImage(
- grpWidth,
- grpHeight,
- BufferedImage.TYPE_INT_ARGB);
- offs = (Graphics2D) bi.getGraphics();
- offs.setBackground(Color.WHITE);
- offs.clearRect(0,0,grpWidth, grpHeight);
- c = getContentPane();
- canvas = new Canvas(){
- private static final long serialVersionUID = 1L;
- public void paint(Graphics g) {
- g.drawImage(bi, 0, 0, null);
- }
- };
- setLayout(new BorderLayout());
- add(canvas, BorderLayout.CENTER);
- try {
- ImageIcon icons[] =
- { new ImageIcon(new URL(getCodeBase() + "icon/optdlg02_1.png")),
- new ImageIcon(new URL(getCodeBase() + "icon/optdlg02_2.png")),
- new ImageIcon(new URL(getCodeBase() + "icon/optdlg02_3.png"))};
- int ret = JOptionPane.showOptionDialog(
- c.getParent(),
- "ダイアログ内表示メッセージ",
- "ダイアログタイトル",
- JOptionPane.DEFAULT_OPTION,
- JOptionPane.PLAIN_MESSAGE,
- null,
- icons,
- null);
- offs.setColor(Color.BLACK);
- for ( int i = 0; i < icons.length; i++ ) {
- if ( ret == i ) {
- offs.drawString("確認ダイアログで"+i+"番目のボタンが押されたよ", 10, 10);
- }
- }
- } catch ( MalformedURLException e ) {
- e.printStackTrace();
- }
- }
- }
|
[ サンプルプログラムの実行結果 ]
[ サンプルプログラムの解説 ]
JOptionPane.showOptionDialogの第7引数にIconオブジェクトを渡すとアイコン付きのボタンを設定することが出来ます。
|