在上节基础上添加对话框显示错误信息。

代码如下:

/*弹出对话框显示错误信息,对话框一般不单独出现,一般依赖于窗体。*/
/*练习-列出指定目录内容*/
import java.awt.Button;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File; class MyWindowDemo {
private Frame f;
private TextField tf;
private Button but;
private TextArea ta;
private Dialog d;
private Label lab;
private Button okBut; MyWindowDemo() {
init();
} public void init() {
f = new Frame("by 星云");// 创建窗体对象
f.setBounds(300, 100, 600, 500);// 设置窗体位置和大小
f.setLayout(new FlowLayout());// 设置窗体布局为流式布局 tf = new TextField(60);// 创建单行文本对象60长度大小字符 but = new Button("转到");// 创建按钮对象 ta = new TextArea(25, 70);// 创建多行文本对象25行,70列 d = new Dialog(f, "提示信息-self", true);//弹出的对话框
d.setBounds(400, 200, 350, 150);//设置弹出对话框的位置和大小
d.setLayout(new FlowLayout());//设置弹出对话框的布局为流式布局
lab = new Label();//创建lab标签填写提示内容
okBut = new Button("确定");//创建确定按钮 d.add(lab);//将标签添加到弹出的对话框内
d.add(okBut);//将确定按钮添加到弹出的对话框内。 f.add(tf);// 单行文本添加到窗体上
f.add(but);// 按钮添加到窗体上
f.add(ta);// 多行文本添加到窗体上 myEvent();// 加载事件处理
f.setVisible(true);// 设置窗体可见 } private void myEvent() { // 确定按钮监听器
okBut.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
d.setVisible(false);
} }); //文本框兼容器
tf.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER)//如果按下回车键执行showDir()功能函数
showDir();//调用功能函数
} }); // 对话框监听器
d.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) { d.setVisible(false);//设置对话框不可见 } }); // 按钮事件监听器
but.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
showDir();
} });
// 窗体关闭监听器
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0); } }); } //showDir()功能函数
private void showDir(){
String dirPath = tf.getText();// 获取单行文本内容保存到字符串dirPath中
File dir = new File(dirPath);// 将字符串dirPath封装成文件 // 如果文件存在,而且是个目录执行下列操作
if (dir.exists() && dir.isDirectory()) {
ta.setText(null);// 没打开一个目录前清空多行文本内容
String[] names = dir.list();// 文件目录列表存放到字符数组中
for (String name : names) {
ta.append(name + "\r\n");// 追加文本内容并换行 }
} else { String info = "您输入的路径" + dirPath + "是错误的,请重新输入!";
lab.setText(info);//显示文本错误提示信息
d.setVisible(true);//设置对话框可见。
}
} public static void main(String[] args) { new MyWindowDemo();
} }

上篇:9.JAVA之GUI编程列出指定目录内容                  下篇:   11.JAVA之GUI编程菜单

10.JAVA之GUI编程弹出对话框Dialog的更多相关文章

  1. java selenium (十一) 操作弹出对话框

    Web 开发人员通常需要利用JavaScript弹出对话框来给用户一些信息提示, 包括以下几种类型 阅读目录 对话框类型 1.  警告框: 用于提示用户相关信息的验证结果, 错误或警告等 2. 提示框 ...

  2. CKEDITOR 4.6.X 版本 插件 弹出对话框 Dialog中 表格 Table 自定义样式Style 问题

    项目开发过程中,发现CKEDITOR 插件的弹出框 内 如果跟据项目需要写表格(table tr td),表格的边框等属性会被 CKEDITOR的清除或覆盖,导致表格很难看. 问题关键: 插件弹出框d ...

  3. Android 弹出对话框Dialog充满屏幕宽度

    final View view = LayoutInflater.from(context).inflate(layoutId, null); final Dialog dialog = new Di ...

  4. 9.JAVA之GUI编程列出指定目录内容

    代码如下: /*列出指定目录内容*/ import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import ...

  5. 11.JAVA之GUI编程菜单

    功能:添加菜单组件 知识总结: 代码如下: import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Menu; impor ...

  6. Eclipse无法正常启动,弹出对话框内容为 A Java Runtime...

    1.Eclipse无法正常启动,弹出对话框内容为 A Java Runtime...如下图: 原因分析:由于软件版本的更新或者安装其他开发软件无意之间修改了配置文件中的路径,众所周知,Java虚拟机( ...

  7. Java之GUI编程

    GUI编程 组建 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 破解工具 1.简介 GUI的核心技术:Swing AWT 为什么不流行? 界面不美观. 需要jre环境.(没必 ...

  8. 【Java】GUI编程

    GUI编程 前言 某koukou老师的任务罢了,好在狂神老师居然有GUI的课,只能说是有救星了. [狂神说Java]GUI编程入门到游戏实战 最好笑的是,老师要求掌握的居然是14年的知识,就连狂神在上 ...

  9. java基础—GUI编程(一)

    一.AWT介绍

随机推荐

  1. sonn_game网站开发01:写在最前面

    之前做的个人博客项目,日向博客现在已经进入后期完善阶段了.是时候开始打造一个新坑了. 然而改造个什么坑呢?构思了好几天,想了好多方案,都觉得没啥动手欲望.因为,我想做的是那种,自己能用得上,而且有一定 ...

  2. ElasticSearch 5学习(9)——映射和分析(string类型废弃)

    在ElasticSearch中,存入文档的内容类似于传统数据每个字段一样,都会有一个指定的属性,为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成字符串值,Elasticsearc ...

  3. [C#] 进阶 - LINQ 标准查询操作概述

    LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...

  4. 阿里云服务器上配置并使用: PHP + Redis + Mysql 从配置到使用

    (原创出处为本博客,http://www.cnblogs.com/linguanh/) 目录: 一,下载 二,解压 三,配置与启动 四,测试 Redis 五,配置 phpRedis 扩展 六,综合测试 ...

  5. 从源码浅析MVC的MvcRouteHandler、MvcHandler和MvcHttpHandler

    熟悉WebForm开发的朋友一定都知道,Page类必须实现一个接口,就是IHttpHandler.HttpHandler是一个HTTP请求的真正处理中心,在HttpHandler容器中,ASP.NET ...

  6. 【uwp】浅谈China Daily 中划词翻译的实现

    学习uwp开发也有一段时间了,最近上架了一个小应用(China Daily),现在准备将开发中所学到的一些东西拿出来跟大家分享交流一下. 先给出应用的下载链接:China Daily , 感兴趣的童鞋 ...

  7. 如何用Java类配置Spring MVC(不通过web.xml和XML方式)

    DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...

  8. 【干货分享】流程DEMO-资产请购单

    流程名: 资产请购  业务描述: 流程发起时,会检查预算,如果预算不够,流程必须经过总裁审批,如果预算够用,将发起流程,同时占用相应金额的预算,但撤销流程会释放相应金额的预算.  流程相关文件: 流程 ...

  9. Linux模块编程框架

    Linux是单内核系统,可通用计算平台的外围设备是频繁变化的,不可能将所有的(包括将来即将出现的)设备的驱动程序都一次性编译进内核,为了解决这个问题,Linux提出了可加载内核模块(Loadable ...

  10. 微软“.Net社区虚拟大会”dotnetConf2015:关键词:.NET 创新、开源、跨平台

    去年 11 月的时候,微软开源了 .NET CoreFX,然后是今年 2 月份的 .NET CoreCLR.自那时以来,已经有大约 3500 人在 GitHub 上进行了提交,而且贡献者的人数还在持续 ...