Dialog是窗口的意思,它是Window的子类。与frame相比,frame是我们大的窗口,而dialog便是那种弹出来和你说话的对话框。

Dialog类的默认布局是BorderLayout

Dialog的一种比较典型的构造器,构造方法like这样:

Dialog(Dialog owner, String title, boolean modal)

owner: 第一个是它的爸爸,对话框通常依赖于其他窗口,就是要有个爸爸。爸爸可以是Frame也可以是Dialog。 所以一个Frame的对话框的加入不用add,而是你在爸爸那栏填好就行。

title:顾名思义,就是对话框的名字。

modal:这个bool尔值是是否模式化,如果参数为true,即该对话框模式化,那么这个对话框弹出来后其他窗口都会被屏蔽掉,比如等等那个例子打开模式化对话框后你是无法点亮原Frame的。    而如果参数为flase,即该对话框非模式化,此时打开这个对话框后仍可以点亮或操作其他窗口。

例子代码:

import java.awt.*;
import java.awt.event.*; public class TestDialog {
public static void main(String[] args) {
new TestFrame("测试").FrameLaunch();
}
} class TestFrame extends Frame{ //大窗口 Dialog d1 = null;
Dialog d2 = null;
Button b1 = null;
Button b2 = null; TestFrame(String s) {
super(s);
} public void FrameLaunch() {
//对两个对话框的处理
d1 = new Dialog(this,"模式对话框",true);
d2 = new Dialog(this,"非模式对话框",false);
d1.addWindowListener(new WindowMonitor());
d2.addWindowListener(new WindowMonitor());
d1.setBounds(20, 30, 300, 400);
d2.setBounds(20, 30, 300, 400); //对两个按钮的处理
b1 = new Button("打开模式对话框");
b2 = new Button("打开非模式对话框");
b1.addActionListener(new ButtonMonitor1());
b2.addActionListener(new ButtonMonitor2()); //对那个爸爸frame的处理
setLocation(500,500);
add(b1);
add(b2,BorderLayout.SOUTH);
addWindowListener(new WindowMonitor());
pack();//大窗口包住两个按钮
setVisible(true);
} class ButtonMonitor1 implements ActionListener { //内部类,控制第一个窗口的弹出
public void actionPerformed(ActionEvent e) {
d1.setVisible(true);
}
} class ButtonMonitor2 implements ActionListener {
public void actionPerformed(ActionEvent e) { //内部类,控制第二个窗口的弹出
d2.setVisible(true);
}
} class WindowMonitor extends WindowAdapter { //内部类,窗口监听器,用来关闭窗口
public void windowClosing(WindowEvent e) {
e.getWindow().setVisible(false);
if( !(e.getWindow() instanceof Dialog)) {
System.exit(0);
}
}
} }

窗口Dialog的更多相关文章

  1. 窗口 - dialog - 概述与基本使用

    什么是dialog 对话框是一种特殊的窗口,它在顶部有一个工具栏,在底部有一个按钮栏.默认情况下,对话框(dialog)只有一个显示在头部右侧的关闭工具. 用户可以配置对话框行为来显示其他工具(比如: ...

  2. 控制窗口不能拖拉出主窗口 Dialog And Window

    /* 控制窗口不能拖拉出主窗口(覆写) */var easyuiPanelOnMove = function(left, top) { if ($(this).panel('options').reS ...

  3. jquery ui-----弹出窗口 dialog

    jquery ui 提供了强大的dialog功能,基本能满足开发的功能. 先上一个简单的例子: [代码] <script> $(function() {   $( "#dialo ...

  4. 窗口 - dialog - 与后端交互

    与后端交互,一般需要提交表单数据,所以,这次渲染得dialog其实是一个<form> <form id="loginForm"> <table ali ...

  5. JQuery Dialog(JS模态窗口,可拖拽的DIV) 效果实现代码

    效果图 调用示意图   交互示意图 如上图所示,这基本是JQueryDialog的完整逻辑流程了. 1.用户点击模态窗口的“提交”按钮时,调用JQueryDialog.Ok()函数,这个函数对应了用户 ...

  6. (转)弹出窗口lhgDialog API文档

    应用到你的项目 如果您使用独立版本的lhgDialog窗口组件,您只需在页面head中引入lhgcore.lhgdialog.min.js文件,4.1.1+版本做了修改可以和jQuerya库同时引用, ...

  7. QDialog弹出一个窗口,改变窗口大小

    创建一个QT应用 文件->新建文件或项目 Application->Qt Widgets Application 其他下一步 基类选择QDialog 其他下一步 resize() 改变窗口 ...

  8. html 5 dialog标签:定义特殊术语或短语

    html5中<dialog>标签作用是定义特殊术语或短语,这里主机吧详细介绍下<dialog>标签用法.<dialog>标签属性以及<dialog>标签 ...

  9. Android 常用dialog提示对话框

    在android应用程序中,经常需要用到dialog对话框让用户知道现在所在进行的操作(比如耗时的操作),或者提示某些信息和状态等,算是比较常用的一个知识点: 1.简单对话框 protected vo ...

随机推荐

  1. 使用python转换markdown to html

    起因 有很多编辑器可以直接将markdown转换成html,为什么还要自己写呢?因为我想写完markdown之后,即可以保存在笔记软件中(比如有道),又可以放到github进行版本管理,还可以发布到博 ...

  2. HDOJ 4455 Substrings 递推+树状数组

    pre[i]第i位数往前走多少位碰到和它同样的数 dp[i]表示长度为i的子串,dp[i]能够由dp[i-1]加上从i到n的pre[i]>i-1的数减去最后一段长度为i-1的断中的不同的数得到. ...

  3. EditText设置光标位置问题

    普通设置 EditText 光标显示位置的方法就是 et.setSelection(text.length()); et.setSelection(0); 设置0 就是第一位了. 设置text长度就最 ...

  4. leetCode 81.Search in Rotated Sorted Array II (旋转数组的搜索II) 解题思路和方法

    Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...

  5. Windows 7旗舰版安装Visual Studio 2013 Ultimate的系统必备及注意事项

    系统必备: 1.Windows7 SP1 2.IE 10

  6. 2016/04/26 流程 数据库lcdb 四个表 1,用户表users 2,流程表(设定有哪些流程)liucheng 3,流程发起者表(记录谁发起到哪里) 4,流程经过的人员表 flowpath (order排序)

    流程:      十一 个页面 1,denglu.php(登录) <!DOCTYPE html> <html lang="en"> <head> ...

  7. 浅谈UML的概念和模型之UML视图

    相信大家都知道UML的全称,统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件系统进行可视化建模的一种语言.UML为面向对象开发系统的产品进行说明.可视化. ...

  8. 谈谈对redux的认识

    redux是从flux演变而来,但又独立于react.简言之就是,redux是一种单纯的状态管理器.可以和react搭配,也可以和其它框架搭配. redux有三个重要的部分组成: store, act ...

  9. easyui表格格线错位

    现象:如果easyui表格中存在后渲染的linkbutton,则可能会导致表格固定列的格线与内容列的格线不一致,出现这种情况的原因是在表格的onLoadSuccess事件中渲染linkbutton时, ...

  10. 并不对劲的loj2179:p3714:[BJOI2017]树的难题

    题目大意 有一棵树,\(n\)(\(n\leq2*10^5\))个点,每条边\(i\)有颜色\(w_i\),共有\(m\)(\(m\leq n\))种颜色,第\(i\)种颜色的权值是\(c_i\)(\ ...