所谓的模态对话框,即弹出后用户只能与对话框交互,而不能与背景页面交互的对话框。
(modal specifies whether dialog blocks user input to other top-level windows when shown. )
在AWT编程中,可在创建Diaglog对象时,指定Modal参数为true,则对话框将具有模态属性。
另外,在使用Axure创建Web页面原型时,可使用动态面板(Dynamic Panel)控件实现类似于模态对话框的效果
(不过原型毕竟只能看个效果,最终还得麻烦前端的兄弟通过前端开发来实现页面,投放的生产环境中去)。
从复用角度来讲,能玩真的,咱最好别玩假的,这样可以提高生产率,老板看着也高兴。
代码如下:
package crazyJavaExample;
import java.awt.*;
public class DialogTest
{
Frame f = new Frame("测试");
Dialog d1 = new Dialog(f, "Modal Dialog Box" , true);
Dialog d2 = new Dialog(f, "Modeless Dialog Box" , false);
Button b1 = new Button("Open Modal Dialog Box");
Button b2 = new Button("Open Modeless Dialog Box");
public void init()
{
d1.setBounds(20 , 30 , 300, 400);
d2.setBounds(20 , 30 , 300, 400);
b1.addActionListener(e -> d1.setVisible(true));
b2.addActionListener(e -> d2.setVisible(true));
f.add(b1);
f.add(b2 , BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
}
public static void main(String[] args)
{
new DialogTest().init();
}
}