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

豆豆网   技术应用频道   2008年01月22日  【字号: 收藏本文

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

  一、引言

  对话框,是指一个最顶层的拥有标题和边框的弹出窗口,典型地应用于用户进行某种形式的输入操作。在JDK 5.0和早期版本中,构建一个对话框时,它必须拥有一个作为它的所有者窗口的框架窗口或另一个对话框,即使窗口是不可见的。当用户最小化一个可见对话框的所有者窗口时会自动隐藏该对话框;而当用户随后恢复所有者窗口时,该对话框再次出现。

  一个对话框可以是无模式的也可以是模式的。除了该对话框的所有者的窗口之外,模式对话框将阻止在应用程序中其它顶层窗口的输入。模式对话框捕获窗口焦点直到其被关闭为止(经常响应于一次按钮点击)。另一方面,一个无模式对话框允许用户改变它的状态,而此时其它窗口仍然可拥有焦点。后者常用于工具栏窗口中,例如你在一个图像编辑程序中所见的。

  在JDK 5.0和早期版本中的模态模型有一些局限。而且,这种模态模型也存在一些问题。最著名的问题涉及到JavaHelp工具窗口。JavaHelp,Java应用程序中提供帮助信息的API,使用独立的窗口来显示所有的必要信息。然而,如果应用程序显示任何模式对话框,例如一标准Save As对话框,那么该对话框将阻止用户与JavaHelp工具窗口进行交互。

  但是Java 6,代码名称为Mustang,已经通过一种新的抽象窗口工具箱(AWT)模态模型解决了此问题以及其它几个问题。这种新型模型允许开发者根据其选择的模态类型指定范围或限制一个对话框的模态阻断。如此模态类型也允许窗口和对话框成为真正的无父窗口,也即,拥有一个null父窗口,它可以帮助限制窗口的范围和对话框的模态。

  二、模态类型

  Java 6支持四种模态类型:

  •无模式。无模式对话框在自己为可见时并不阻断任何其它窗口。

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

正在加载评论...