全面剖析Java6中新型模态对话框API


作者:刀断水 | 来源:Examlink | 日期:08-16 | 字体: [ ]

本文简介:对话框,是指一个最顶层的拥有标题和边框的弹出窗口,典型地应用于用户进行某种形式的输入操作。

            

  ·在运行时刻改变模态类型。改变一可见的对话框的模态类型可能没有什么影响,直到该对话框被隐蔽并且被再次显示。

  下列代码实例展示了新型的模态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;
//……省略,详见所附源码文件 

  一个使用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); 

  一个被设置为APPLICATION_MODAL的对话框将会阻断在同一Java程序中的所有的顶层窗口,除了它自己的孩子窗口层次之外。如果若干applet在一浏览器中被调用,那么可以把它们当作或者是独立的应用程序或者是单个的程序。这种行为的实现要依赖具体的环境而定。

  注意,下面的f3不会被APPLICATION_MODAL和DOCUMENT_MODAL对话框所阻断。

f3.setBounds(32, sh - 200 + 32, 300, 200);
f3.addWindowListener(closeWindow);
f3.setLayout(new BorderLayout());
l = new Label("EXCLUDED FRAME");
l.setBackground(Color.GREEN);
l.setAlignment(Label.CENTER);
l.setFont(labelFont);
f3.add(l, BorderLayout.CENTER);
b = new Button("I'm alive!");
f3.add(b, BorderLayout.SOUTH);
f3.setVisible(true);
// 第四个文档
f4 = new Frame("Parent Frame");
f4.setBounds(sw - 300 + 32, sh - 200 + 32, 300, 200);
f4.addWindowListener(closeWindow);
f4.setLayout(new BorderLayout());
l = new Label("FRAME");
l.setBackground(Color.GRAY);
l.setAlignment(Label.CENTER);
l.setFont(labelFont);
b = new Button("Show file dialog");
b.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent e) {
  fd4.setVisible(true);
 }
});
f4.add(b, BorderLayout.SOUTH);
f4.setVisible(true);
fd4 = new FileDialog(f4, "File Dialog", FileDialog.LOAD);
为了向后兼容性起见,File对话框缺省是APPLICATION_MODA。
fd4.setBounds(sw - 400 + 32, sh - 300 + 32, 300, 200);
}
}              



用户名: 新注册) 密码: 匿名评论 [所有评论]

评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • java认证考试 java入门 java资格认证 java学习 java心得
如果你觉得一篇文章有用,你可以在每篇后面参与评论,或者查看其他人的评论,请保证你的评论对大家友好。
点这里评论
或者您可以来资源论坛参与讨论,一切都是免费的,不过可能需要麻烦您注册一下。
点这里讨论
把你的文章登陆在这里,让大家来分享你的文章。请立即登陆发表!
点这里投稿