对话框不能单独存在,依赖于窗体,有显示标题,有模式

获取Dialog对象,new出来,构造参数:Frame对象,String的标题,模式

窗体内部的内容,Label对象,Button对象,调用Dialog对象的add()方法,把这两个添加进去

Dialog也是一个普通的窗体,需要设置尺寸和位置

这个Dialog窗体不用加入到Frame窗体中,只需要设置是否显示就可以了

对话框的叉号,给对话框添加窗体事件

调用Dialog对象的addWindowListener()方法,设置,重写windowClosing()方法,方法里面调用Dialog对象setVisible(flase),隐藏掉

显示信息

调用Label对象的setText()方法,设置文本

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.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File; public class FrameDemo {
private Frame frame;
private TextField tf;
private TextArea ta;
private Button button; private Dialog dialog;
private Label label;
public FrameDemo() {
init();
} /**
* 初始化
*/
public void init() {
frame = new Frame("测试窗体");
frame.setBounds(300, 200, 300, 400);
frame.setLayout(new FlowLayout()); tf = new TextField(20);
button = new Button("转到");
ta = new TextArea(30, 30);
frame.add(button);
frame.add(tf);
frame.add(ta); dialog=new Dialog(frame, "警告", false);
dialog.setBounds(250, 100, 200, 100);
dialog.setLayout(new FlowLayout());
label=new Label();
dialog.add(label); frame.setVisible(true); addEventAction();
} /**
* 添加事件
*/
public void addEventAction() {
// 退出
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//对话框的window事件
dialog.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
dialog.setVisible(false);
}
});
// action事件
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String dirName = tf.getText();
File file = new File(dirName); if (!file.isDirectory() || !file.exists()) {
dialog.setVisible(true);
label.setText(dirName+"目录不存在");
ta.setText("目录不存在");
return;
} String[] files = file.list();
StringBuilder sb = new StringBuilder();
for (String name : files) {
sb.append(name);
sb.append("\r\n");
}
ta.setText(sb.toString());
}
});
} /**
* @param args
*/
public static void main(String[] args) {
new FrameDemo();
} }

最新文章

  1. XMPP iOS客户端实现三:登录、注册
  2. iOS之2016面试题一
  3. linux内核学习之七 可执行程序的装载和运行
  4. .NET(C#)中的DataSet、string、DataTable等对象转换成Json
  5. Java for LintCode 链表插入排序
  6. 你需要知道的Sass插值
  7. shell 里把命令的输出赋给变量 以及变量的使用
  8. 关于Cygwin的x-Server的自动运行以及相关脚本修改
  9. Unix编程之size_t、ssize_t
  10. Bresenham算法画填充圆及SDL代码实现
  11. Sublime Text2使用心得
  12. linux修改主机名-IP
  13. IOS9中联系人对象的使用及增删改查操作的函数封装
  14. c/c++再学习:C与Python相互调用
  15. JQ初级
  16. 左侧 随着页面滚动固定 fixed. scroll .scrollTop
  17. Android中AES256加密的实现
  18. maven聚合工程使用如何debug
  19. 还没被玩坏的robobrowser(7)——表单操作
  20. BootStrap同时显示多个Modal解决方案

热门文章

  1. CentOS7.x下安装VNC
  2. JavaScript多个音频audio标签,点击其中一个播放时,其他的停止播放
  3. “全栈2019”Java多线程第四章:设置和获取线程名称
  4. “全栈2019”Java异常第五章:一定会被执行的finally代码块
  5. 自定义JSON返回字段
  6. [AIR] AS3操作文件时报SecurityError: fileWriteResource 错的解决方法
  7. 读取图片信息(exif),使用com.drew.metadata.Metadata
  8. HTML实例(四)
  9. centos7安装配置sql server 2017 linux教程
  10. leetcode-292-Nim Game(搬石子)