JDialog

来源:互联网 发布:快速磁盘碎片整理软件 编辑:程序博客网 时间:2024/05/12 05:42

对话框与框架(JFrame)有一些相似,但它一般是一个临时的窗口,主要用于显示提示信息或接受用户输入。所以,在对话框中一般不需要菜单条,也不需要改变窗口大小。此外,在对话框出现时,可以设定禁止其他窗口的输入,直到这个对话框被关闭。对话框是由 JDialog 类实现的,JDialog 类的构造方法有多种:

 

  • JDialog();
  • JDialog(Dialog owner);
  • JDialog(Dialog owner,boolean modal);
  • JDialog(Dialog owner,String title);
  • JDialog(Dialog owner,String title,boolean modal);
  • JDialog(Dialog owner,String title,boolean modal,GraphicsConfiguration gc);
  • JDialog(Frame owner);
  • JDialog(Frame owner,boolean modal);
  • JDialog(Frame owner,String title);
  • JDialog(Frame owner,String title,boolean modal);
  • JDialog(Frame owner,String title,boolean modal,GraphicsConfiguration gc);

 

  其中 Frame 类型的参数表示对话框的拥有者,boolean 类型参数用于控制对话框的工作方式。如果为true,则对话框为可视时,其他构件不能接受用户的输入,此时的对话框称为静态的;如果为false,则对话框和所属窗口可以互相切换,彼此之间没有顺序上的联系。String类型参数作为对话框的标题,在构造对话框之后,就可以添加其他的构件。

对话框使用示例:

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class JDialogDemo extends JFrame implements ActionListener{

    public JDialogDemo(){

        Container contentPane=this.getContentPane();

        JButton jButton1=new JButton("显示对话框");

        jButton1.addActionListener(this);

        contentPane.add(jButton1);

        this.setTitle("JDialogDemo");

        this.setSize(300,300);

        this.setLocation(400,400);

        this.setVisible(true);

    }

    /* 响应窗体的按钮事件 */

    public void actionPerformed(ActionEvent e){

        if(e.getActionCommand().equals("显示对话框")){

            HelloDialog hw=new HelloDialog(this);

        }

    }

    class HelloDialog implements ActionListener{

        JDialog jDialog1=null; //创建一个空的对话框对象

        HelloDialog(JFrame jFrame){

            /* 初始化jDialog1

             * 指定对话框的拥有者为jFrame,标题为"Dialog",当对话框为可视时,其他构件不能

             * 接受用户的输入(静态对话框) */

            jDialog1=new JDialog(jFrame,"Dialog",true);

            //创建一个按钮对象,该对象被添加到对话框中

            JButton jButton1=new JButton("关闭");

            jButton1.addActionListener(this);

            //将"关闭"按钮对象添加至对话框容器中

            jDialog1.getContentPane().add(jButton1);

            /* 设置对话框的初始大小 */

            jDialog1.setSize(80,80);

            /* 设置对话框初始显示在屏幕当中的位置 */

            jDialog1.setLocation(450,450);

            /* 设置对话框为可见(前提是生成了HelloDialog对象) */

            jDialog1.setVisible(true);

        }

        //响应对话框中的按钮事件

        public void actionPerformed(ActionEvent e){

            if(e.getActionCommand().equals("关闭")){

                // 以下语句等价于jDialog1.setVisible(false);

                /* public void dispose()

                 * 释放由此 Window、其子组件及其拥有的所有子组件所使用的所有本机屏幕资源。

                 * 即这些 Component 的资源将被破坏,它们使用的所有内存都将返回到操作系统,

                 * 并将它们标记为不可显示。 */

                jDialog1.dispose();

            }

        }

    }

    public static void main(String[] args){

        JDialogDemo test=new JDialogDemo();

    }

}

原创粉丝点击