Java 6中新型模态对话框API解析

http://tech.ddvip.com   2008年01月22日    社区交流

内容摘要:Java 6,代码名称为Mustang,已经通过一种新的抽象窗口工具箱(AWT)模态模型解决了此问题以及其它几个问题。这种新型模型允许开发者根据其选择的模态类型指定范围或限制一个对话框的模态阻断。

  图1:对话框的模态优先权

  注意,这种新型的模态模型并没有实现一个系统模态,这将会阻断(Java或其它)所有被显示在桌面上的应用程序,而只有一个模式对话框处于活动状态。

  三、了解新的构造器

  能提供真正无父窗口而不中断向后兼容对于AWT开发小组来说是一个挑战。在JDK 5.0及以前的版本中,允许传递null作为JDialog或Jwindow的父窗口。这意味着,一不可见的共享所有者的框架窗口将成为这个对话框或窗口的父窗口。这个共享所有者的框架窗口的创建是为了创建无父窗口对话框。这种情况直到Java SE 6才得以成功-Java SE 6引入了新型的文档-模式对话框能够阻止所有的窗口使用相同的文档。

  因而,工具箱会知道这样的对话框或窗口是没有null父窗口的。在Mustang中,仍然允许传递null作为一个父窗口到旧式的JDialog或JWindow构造器中。并且这可以完成相同的事情:其成为共享的所有者框架窗口而不是成为父窗口,这也照顾了向后兼容问题。然而,现在能把null传递到Dialog或Window构造器中,而且也能传递到新的JDialog或JWindow构造器中,这意味着这些对话框能够真正成为无父窗口。

  下面列举的是一些比较有用的构造器:

  •JDialog(Dialog owner)

  创建一个无标题并用一个指定的对话框作为其父窗口的无模式对话框

  •JDialog(Dialog owner,boolean modal)

  用指定的所有者Dialog和模态创建一个具有指定的模态和所有者对话框的对话框

  •JDialog(Dialog owner,String title)

  创建一个具有指定的标题和所有者对话框的无模式对话框

  •JDialog(Dialog owner,String title,boolean modal)

  创建一个具有指定的标题,模态和所有者对话框的对话框

来源:天极    作者:朱先忠    责编:豆豆技术应用

正在加载评论...