DialogBox を表示する

Swing で DialogBox を表示します。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. メモ帳などでタイプして DialogBox.java の名前で保存して下さい。
    //★ Dialog Box を表示    前田 稔
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    
    class DialogBox extends JFrame
    {
        // Main
        public static void main(String[] args)
        {   new DialogBox();
        }
    
        // Constructor
        DialogBox()
        {   getContentPane().setLayout(new FlowLayout());
            MyDialog dlg = new MyDialog(this);
            dlg.setVisible(true);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setTitle("Dialog Box");
            setSize(200, 120);
            setVisible(true);
        }
    }
    
    class MyDialog extends JDialog implements ActionListener
    {
        MyDialog(Frame owner)
        {   super(owner);
            getContentPane().setLayout(new FlowLayout());
            JButton btn = new JButton("OK");
            btn.addActionListener(this);
            getContentPane().add(btn);
            setTitle("MyDialog");
            setSize(100, 80);
            setVisible(true);
        }
        public void actionPerformed(ActionEvent e)
        {   setVisible(false);  // 非表示にする
        }
    }
    
  2. java のソースファイルをコンパイルして class オブジェクトを実行して下さい。
    Windows と DialogBox の二枚の画面が表示されます。
    DialogBox のOKボタンをクリックすると DialogBox が非表示になります。

プログラムの説明

  1. DialogBox は通常 JDialog のサブクラスを作成して表示します。
    java.awt と javax.swing をインポートして下さい。
    class DialogBox は JFrame を継承します。
        import java.awt.*;
        import javax.swing.*;
        import java.awt.event.*;
        class DialogBox extends JFrame
        {
        
  2. setLayout() でレイアウトを設定します。
    new MyDialog(this) で MyDialog Class をインスタンス化します。
    dlg.setVisible(true); で Dialog を表示します。
    dlg.show(); は推奨されていません。
        // Constructor
        DialogBox()
        {   getContentPane().setLayout(new FlowLayout());
            MyDialog dlg = new MyDialog(this);
            //dlg.show();
            dlg.setVisible(true);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setTitle("Dialog Box");
            setSize(200, 120);
            setVisible(true);
        }
        
  3. JDialog を継承した MyDialog Class です。
    MyDialog Class の Constructor で DialogBox にボタンを張り付けます。
    btn.addActionListener(this) でボタンがクリックされたときの Listener を設定します。
        class MyDialog extends JDialog implements ActionListener
        {
            MyDialog(Frame owner)
            {   super(owner);
                getContentPane().setLayout(new FlowLayout());
                JButton btn = new JButton("OK");
                btn.addActionListener(this);
                getContentPane().add(btn);
                setTitle("MyDialog");
                setSize(100, 80);
                setVisible(true);
            }
        
  4. ボタンがクリックされたときに起動するメソッドです。
    setVisible(false); で DialogBox を非表示に設定します。
    hide(); は推奨されていません。
        public void actionPerformed(ActionEvent e)
        {   //hide();
            setVisible(false);  // 非表示にする
        }
        

超初心者のプログラム入門(Java2)