Java 6中新型模态对话框API解析[Java编程]
本文“Java 6中新型模态对话框API解析[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1、引言
对话框,是指一个最顶层的拥有标题和边框的弹出窗口,典型地利用于用户举行某种情势的输入操作.在JDK 5.0和早期版本中,构建一个对话框时,它必须拥有一个作为它的全部者窗口的框架窗口或另一个对话框,即便窗口是不可见的.当用户最小化一个可见对话框的全部者窗口时会自动躲藏该对话框;而当用户随后恢复全部者窗口时,该对话框再次呈现.
一个对话框可以是无情势的也可以是情势的.除了该对话框的全部者的窗口之外,情势对话框将禁止在利用程序中别的顶层窗口的输入.情势对话框捕捉窗口核心直到其被关闭为止(常常呼应于一次按钮点击).另一方面,一个无情势对话框答应用户改变它的状况,而此时别的窗口仍旧可拥有核心.后者常用于工具栏窗口中,比方你在一个图象编辑程序中所见的.
在JDK 5.0和早期版本中的模态模子有一些范围.并且,这种模态模子也存在一些问题.最闻名的问题触及到JavaHelp工具窗口.JavaHelp,Java利用程序中供应帮忙信息的API,利用独立的窗口来显示全部的必要信息.但是,假如利用程序显示任何情势对话框,比方一尺度Save As对话框,那么该对话框将禁止用户与JavaHelp工具窗口举行交互.
但是Java 6,代码名称为Mustang,已经通过一种新的抽象窗口工具箱(AWT)模态模子办理了此问题以及别的几个问题.这种新型模子答应开辟者按照其挑选的模态范例指定范围或限制一个对话框的模态阻断.如此模态范例也答应窗口和对话框成为真正的无父窗口,也即,拥有一个null父窗口,它可以帮忙限制窗口的范围和对话框的模态.
2、模态范例
Java 6支持四种模态范例:
无情势.无情势对话框在自己为可见时并不阻断任何别的窗口.
文档-情势.文档-情势对话框阻断全部的来自同一文档的窗口,除了那些来自于它的子层次上的窗口外.在此意义中,一个文档是指一个窗口层次-框架窗口,对话框等等,它们同享一个文档根窗口.文档根窗口是全部没有全部者的最顶级窗口.
利用程序-情势.利用程序-情势对话框可以阻断同一利用程序中的全部窗口,除了那些来自于它的子层次上的窗口外.假如在浏览器中激活若干applet,那么浏览器将把它们当作独立的利用程序大概作为一个单一的利用程序.具体情形依靠实现的具体环境.
工具箱-情势.工具箱-情势对话框可以阻断全部的运行于一样的工具箱中的窗口,除了那些来自于它的子层次上的窗口外.假如激活多个applet,那么它们都运行于一样的工具箱上.因此,从applet中显示的工具箱-情势对话框大概影响别的的applet.
正如从前的JDK一样,一个对话框在缺省情形下是无情势的.但是假如你在Mustang中构造一个情势对话框的话,目前它将缺省利用利用程序-情势范例.别的,情势和无情势对话框的行为已经在Mustang作了改变,它们可以一向呈目前其父窗口的顶部.
模态优先权是由阻断强度决意的.这种模态优先权帮忙处理两个对话框可见并且可以彼此阻断的情形.优先权按升序布列辨别是:无情势,文档-情势,利用程序-情势和工具箱-情势.这种优先权自然地反映了一个对话框的范围阻断的嵌套情形.一个无情势对话框有一个空范围的阻断.文档-情势对话框的范围阻断是在特定的利用程序中完成的,并且全部的利用程序是运行于一种工具箱中.图1展示了这样的一个例子.
图1:对话框的模态优先权
注意,这种新型的模态模子并没有实现一个系统模态,这将会阻断(Java或别的)全部被显示在桌面上的利用程序,而只有一个情势对话框处于活动状况.
以上是“Java 6中新型模态对话框API解析[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |