第一节 第二节 第三节 第四节 第五节 第六节 第七节 第八节 第九节 第十节 第十一节
第十节    对话框  
对话框(Dialog)是一个带有标题栏的无边界窗口,通常用于接受用户的信息或向用户显示信息。对话框用Dialog类创建,而Dialog类是从Window类继承的。
对话框分模态和非模态的。当一个模态对话框打开时,用户仍然可以访问其他窗口。对话框的默认布局是BorderLayout。表11.1列出了Dialog类的构造函数及常用方法。

表11.1 Dialog类的构造函数及常用方法

构造函数

说明

public Dialog(Frame owner)

创建一个无标题、指定所属框架且初始化不可见的非模态对话框对象

public Dialog(Frame owner,boolean modal)

创建一个无标题、指定所属框架和模态且初始化不可见的对话框对象

public Dialog(Frame owner, String title)

创建一个指定标题和所属框架且初始化不可见的非模戊对话框对象

public Dialog(Frame owner, String title, boolean modal)

创建一个指定标题、所属框架和模态的初始化不可见的对话框对象

常用方法

说明

public String getTitle()

获取对话框标题

public void hide()

隐藏对话框

boolea isModal()

判断对话框是否模态

public void setTitle(String title)

设置对话框标题

public void show()

显示对话框


设计对话框时,通常定义一个框架(Frame)作为对话框的所属框架。下列程序演示了对话框的使用方法。
【例11.1】
//Fig. 10.13: DialogDemo.java
//Creating a Dialog.
import java.awt.*;
import java.awt.event.*;
public class DialogDemo extends Frame implements ActionListener{
Button b=new Button("打开对话框");
//create a model dialog object whose owner is this frame
Dialog dlg=new Dialog(this,"你好",true);
public DialogDemo(){
super("对话框示例");
add(b);
b.addActionListener(this);
pack();//使框架尺寸适应组件的大小
setVisible(true);
}
//handle the button_click events
public void actionPerformed(ActionEvent e){
dlg.setLayout(new FlowLayout());
dlg.add(new Label("你好"));
dlg.add(new Button("确定"));
dlg.setSize(100,60);
//show the dialog
dlg.show();
}
public static void main(String[] args){
new DialogDemo();
}
}
将该程序编译成DialogDemo.class,然后使用命令java DialogDemo运行,在单击打开对话框按钮后,将弹出一个对话框,如图11.4所示。

图11.4对话框示例