Java 6中新型模态对话框API解析
http://tech.ddvip.com 2008年01月22日 社区交流
内容摘要:Java 6,代码名称为Mustang,已经通过一种新的抽象窗口工具箱(AWT)模态模型解决了此问题以及其它几个问题。这种新型模型允许开发者根据其选择的模态类型指定范围或限制一个对话框的模态阻断。
下列代码实例展示了新型的模态API的应用,其中包括现在可灵活在应用于对话框窗口的java.awt.Dialog.ModalExclusionType和 java.awt.Dialog.ModalityType。
图2显示出当你运行该代码后的最终结果。
import java.awt.*;
import java.awt.event.*;
import sun.awt.*;
public class ModalityDemo2 {
// 第一个文档(red):框架,无模式对话框,文档-模式对话框
private static Frame f1;
private static Dialog d11;
//……
图2: 被阻断的和未被阻断的对话框
一个使用DOCUMENT_MODAL的对话框会阻止相同文档中的所有顶层窗口的输入,除了它自己的子窗口层次之外。一个文档是一种没有所有者的顶层窗口。它可以被当作单个文档的子窗口和顶层窗口。因为每一个顶层窗口必须属于某文档,所以它的根可以在没有所有者的最顶层窗口中找到。
d22.setBounds(sw - 500 + 32, 232, 300, 200);
d22.addWindowListener(closeWindow);
d22.setLayout(new BorderLayout());
l = new Label("DOCUMENT_MODAL");
l.setBackground(Color.BLUE);
l.setAlignment(Label.CENTER);
l.setFont(labelFont);
d22.add(l, BorderLayout.CENTER);
//第三个文档
f3 = new Frame("Excluded Frame");
f3.setModalExclusionType(
Dialog.ModalExclusionType.APPLICATION_EXCLUDE);
来源:天极 作者:朱先忠 责编:豆豆技术应用