1.Dialog

  Dialog组件是Window的子类,是容器类,是特殊组件。

  Dialog是可以独立存在的顶级窗口,使用上和普通窗口几乎没有区别,但应注意以下两点:

    1.对话框通常依赖于其他窗口,也就是说通常会有一个父窗口。

    2.对话框有非模式对话框(non-modal)和模式对话框(modal)两种。当某个模式对话框被打开后,该模式对话框总是位于其父窗口之上,在模式对话框被关闭前,其父窗口无法获得焦点。

方法名 说明
Dialog(Frame owner,String title,boolean modal)

创建一个对话框对象

owner:当前对话框的父窗口

title:当前对话框的标题

modal:当前对话框是否是模式对话框

  1. 1 import javax.swing.*;
  2. 2 import java.awt.*;
  3. 3 import java.awt.event.ActionEvent;
  4. 4 import java.awt.event.ActionListener;
  5. 5
  6. 6 public class DialogDemo1 {
  7. 7 Frame frame = new Frame("测试对话框");
  8. 8
  9. 9 Dialog d1 = new Dialog(frame,"模式对话框",true);
  10. 10 Dialog d2 = new Dialog(frame,"非模式对话框",false);
  11. 11
  12. 12
  13. 13 Button modal = new Button("打开模式对话框");
  14. 14 Button nonmodal = new Button("打开非模式对话框");
  15. 15
  16. 16 public void init(){
  17. 17 Box box = Box.createVerticalBox();
  18. 18 box.add(modal);
  19. 19 box.add(nonmodal);
  20. 20
  21. 21 modal.addActionListener(new ActionListener() {
  22. 22 @Override
  23. 23 public void actionPerformed(ActionEvent e) {
  24. 24 d1.setVisible(true);
  25. 25 }
  26. 26 });
  27. 27
  28. 28 nonmodal.addActionListener(new ActionListener() {
  29. 29 @Override
  30. 30 public void actionPerformed(ActionEvent e) {
  31. 31 d2.setVisible(true);
  32. 32 }
  33. 33 });
  34. 34
  35. 35 frame.add(box);
  36. 36 frame.pack();
  37. 37 frame.setVisible(true);
  38. 38 }
  39. 39
  40. 40 public static void main(String[] args) {
  41. 41 new DialogDemo1().init();
  42. 42 }
  43. 43 }

2.FileDialog

  FileDialog是Dialog的子类,代表文件对话框,用于打开或保存文件。需要注意的是,FileDialog不能指定模式和非模式,因为FileDialog完全依赖于平台实现,其对话框类型决定于平台的FileDialog是模式对话框或者非模式对话框。

方法名 说明
FileDialog(Frame parent,String title,int mode)

创建一个文件对话框

parent:父窗口

title:标题

mode:文件对话框类型,FileDialog.LOAD是打开文件,FileDialog.SAVE则是保存文件。

String getDirectory() 获取被打开或保存文件的绝对路径
String getFile() 获取被打开或保存文件的文件名
  1. 1 import javax.swing.*;
  2. 2 import java.awt.*;
  3. 3 import java.awt.event.ActionEvent;
  4. 4 import java.awt.event.ActionListener;
  5. 5
  6. 6 public class FileDialogDemo {
  7. 7 Frame frame = new Frame("测试FileDialog");
  8. 8
  9. 9 Button openButton = new Button("open");
  10. 10 Button saveButton = new Button("save");
  11. 11
  12. 12 FileDialog open = new FileDialog(frame,"打开文件",FileDialog.LOAD);
  13. 13 FileDialog save = new FileDialog(frame, "保存文件", FileDialog.SAVE);
  14. 14
  15. 15 Box box = Box.createVerticalBox();
  16. 16 public void init(){
  17. 17 box.add(openButton);
  18. 18 box.add(saveButton);
  19. 19
  20. 20 openButton.addActionListener(new ActionListener() {
  21. 21 @Override
  22. 22 public void actionPerformed(ActionEvent e) {
  23. 23 open.setVisible(true);
  24. 24
  25. 25 String directory = open.getDirectory();
  26. 26 String filename = open.getFile();
  27. 27
  28. 28 System.out.println("打开文件为:"+directory+filename);
  29. 29 }
  30. 30 });
  31. 31
  32. 32 saveButton.addActionListener(new ActionListener() {
  33. 33 @Override
  34. 34 public void actionPerformed(ActionEvent e) {
  35. 35 save.setVisible(true);
  36. 36
  37. 37 String directory = save.getDirectory();
  38. 38 String filename = save.getFile();
  39. 39
  40. 40 System.out.println("文件为:"+directory+filename);
  41. 41 }
  42. 42 });
  43. 43
  44. 44 frame.add(box);
  45. 45
  46. 46 frame.pack();
  47. 47
  48. 48 frame.setVisible(true);
  49. 49 }
  50. 50
  51. 51 public static void main(String[] args) {
  52. 52 new FileDialogDemo().init();
  53. 53 }
  54. 54 }

AWT05-对话框的更多相关文章

  1. 一步步开发自己的博客 .NET版(10、前端对话框和消息框的实现)

    关于前端对话框.消息框的优秀插件多不胜数.造轮子是为了更好的使用轮子,并不是说自己造的轮子肯定好.所以,这个博客系统基本上都是自己实现的,包括日志记录.响应式布局.评论功能等等一些本可以使用插件的.好 ...

  2. jQuery遮罩层登录对话框

    用户登录是许多网站必备的功能.有一种方式就是不管在网站的哪个页面,点击登录按钮就会弹出一个遮罩层,显示用户登录的对话框.这用方式比较灵活方便.而现在扫描二维码登录的方式也是很常见,例如QQ.微信.百度 ...

  3. Android系统默认对话框添加图片

    开发工具Android Studio 今天公司UI要求软件对话框改成加图片的,以前没有做过,所以就学习了一下,废话不多说, 看效果: 创建XML文件dialog_lsit_item.xml <L ...

  4. Android—关于自定义对话框的工具类

    开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函 ...

  5. 使用CSS3的box-shadow实现双透明遮罩层对话框

    box-shadow介绍 在我之前的一篇文章<从天猫和支付宝身上学习opcity与rgba>中,介绍了实现双透明遮罩层效果的两种方法,分别是opacity和rgba.他们需要分别依赖于不同 ...

  6. 10.JAVA之GUI编程弹出对话框Dialog

    在上节基础上添加对话框显示错误信息. 代码如下: /*弹出对话框显示错误信息,对话框一般不单独出现,一般依赖于窗体.*/ /*练习-列出指定目录内容*/ import java.awt.Button; ...

  7. C#WebBrowrse拦截下载对话框

    为了实现这个功能,可算是折腾不少时间,网上搜素出来的结果基本都是如何屏蔽警告对话框.后来请教一个技术大牛(程序员之窗的主要作者Starts_2000),他用C++实现了,他尝试了下C#也没有解决,就忙 ...

  8. 实现对gridview删除行时弹出确认对话框的一种简单方法

    在VS2008提供的GridView中我们可以直接添加一个CommandField删除列:<asp:CommandField ShowDeleteButton="True" ...

  9. 炫酷的jQuery对话框插gDialog

    js有alert,prompt和confirm对话框,不过不是很美体验也不是很好,用jQuery也能实现, 体验效果:http://hovertree.com/texiao/jquery/34/ 代码 ...

  10. Android中的AlertDialog使用示例五(自定义对话框)

    在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,AlertDialog实现方法为建造者模式. ...

随机推荐

  1. 企业级工作流解决方案(九)--微服务Tcp消息传输模型之客户端处理

    客户端启动 客户端启动主要做三件事情,1. 从配置文件读取服务调用配置,存储到全局对象中.2. 指定客户端编解码器工厂.3. 预连接,即预先建立与服务端的通信Chanel. [DependsOn(ty ...

  2. Elasticsearch搜索资料汇总

    Elasticsearch 简介 Elasticsearch(ES)是一个基于Lucene 构建的开源分布式搜索分析引擎,可以近实时的索引.检索数据.具备高可靠.易使用.社区活跃等特点,在全文检索.日 ...

  3. 5w 字 | 172 图 | 超级赛亚级 Spring Cloud 实战

    一.PassJava 项目简介 PassJava-Learning 项目是 PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. PassJava 是一款 Java 面试刷题 的 ...

  4. thinkPHP 无法加载控制器:Hello

    出现这种问题的情况下要看看: (1).控制器的名称是否写对,控制器的命名规范(别忘下class) 控制器的命名规则1.必须采用大驼峰的命名规则2.必须以Controller.class.php来结尾I ...

  5. python3安装mysqlclient,解决django使用pymysql报错的问题

    1.起因 在django中为了使用MySQL,一般是在项目目录下的__init__.py中添加 import pymysql pymysql.install_as_MySQLdb() # 使用pymy ...

  6. shipyard中文版安装教程(附安装脚本)

    一. Docker Shipyard是什么 ? shipyard是一个开源的docker管理平台,其特性主要包括: 支持节点动态集群,可扩展节点的规模(swarm.etcd方案) 支持镜像管理.容器管 ...

  7. Java基础教程——Date类和Calendar类

    Date类和Calendar类都是关于日期的类,都在java.util包中,使用时需要import. Date java.util.Date类的对象用来表示时间和日期,用得最多的是获取系统当前日期和时 ...

  8. Linux学习进度记录(一)

      一.按系列罗列Linux的发行版,并描述不同版本之间的联系和区别 1. RHEL (RedHat Enterprise Linux):红帽企业版Linux,红帽公司是全球最大的开源技术厂商,RHE ...

  9. 笔记本无法连接校园网,windows诊断显示校园网之未响应

    打开cmd(管理员): 输入以下四条,每一条都按enter ipconfig /flushdns ipconfig /registerdns ipconfig /release ipconfig / ...

  10. Java 基础之 String 类

    String String 被声明为 final,因此不能被继承.(Integer 等包装类也不能被继承) 在 java8 中,String 内部使用 char 数组 来存储数据 public fin ...