Dialog构造方法

* Dialog(Frame owner, String title, boolean modal)

构造一个最初不可见的 Dialog,它带有指定的所有者 Frame、标题和模式。

备注:Dialog的模式区别在于:

true的话对话框依附于窗体,不取消Dialog不可以操作窗体,

    false的话,不取消Dialog可以操作窗体!

package june610;

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;

public class FrameDemo4 {

public static void main(String[] args) {

final Frame f = new Frame("我的电脑");

f.setBounds(300, 100, 600, 500);

f.setLayout(new FlowLayout());

Button b = new Button("转到");

Button okBut = new Button("确定");

final TextField tf = new TextField(60);

final TextArea ta = new TextArea(25, 70);

f.add(tf);

f.add(b);

f.add(ta);

f.setVisible(true);

final Dialog d = new Dialog(f,"提示信息",true);

final Label lab = new Label();//没有给出内容,用到的时候再给出!

d.add(lab);//label标签加到Dialog上去!

d.setBounds(400, 200, 240, 150);

d.setLayout(new FlowLayout());

d.add(okBut);

okBut.addKeyListener(new KeyAdapter() {

public void keyPressed(KeyEvent e){

d.setVisible(false);

}

});

//只可以对鼠标有作用!

okBut.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

d.setVisible(false);

}

});

d.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

d.setVisible(false);//对话框不显示

}

});

//窗体上的操作

f.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

//设置键盘监听器,当输入enter键的时候实现和点击鼠标同样的功能!

/*tf.addKeyListener(new KeyAdapter() {

public void keyPressed(KeyEvent e) {

if (e.getKeyCode() == 10) {

// buttonAction();

run(tf,ta,f,d,lab);

}

System.out.println(e.getKeyCode());

}

});*/

//和上面被注释的代码实现的是同样的功能,也是键盘控制,不过不能设定哪个键,只有enter!

tf.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

run(tf,ta,f,d,lab);

// System.out.println(text);

}

});

//给转到添加键盘和鼠标双控制

b.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

run(tf,ta,f,d,lab);

// System.out.println(text);

}

});

b.addKeyListener(new KeyAdapter() {

public void keyPressed(KeyEvent e){

run(tf,ta,f,d,lab);

}

});

}

//封装这一方法,为了方便使用(注意这个时候传递参数太多了,尽量避免这种情况的发生!

//在一个方法内部创建的对象只有在自己方法体里面才可以直接调用,而在外部方法必须传递参数)

public static void run(TextField tf,TextArea ta,Frame f,Dialog d,Label lab){

String dirPath = tf.getText();// 获取文本(我们想验证的是路径),接下来获取文件

File file = new File(dirPath);// 获取文件

if (file.exists() && file.isDirectory()) {// 判断,存在否以及是否是文件夹

ta.setText("");// 如果符合条件的话,清空以前的数据;

String[] names = file.list();

for (String name : names) {

ta.append(name + "\r\n");

}

} else {

//备注:应该在这里构建对话框,为了内存的优化,用到的时候才创建对象,用不到就不创建!

String info = "您输入的信息:"+dirPath+"有误,请重新输入!";

lab.setText(info);

d.setVisible(true);

/**可以这样写,但是不专业,现在弹出对话框!

* ta.setText("");

ta.append("对不起,请确认您输入的是路径!");

*/

}

}

}

最新文章

  1. 【转】C# using的三种使用方法
  2. 杭电acm 1001
  3. ActiveMQ初体验
  4. C++11空指针
  5. C#中listbox中选中多项,并删除
  6. eclipse中不能找到dubbo.xsd解决方法
  7. Windows系统下的TCP参数优化
  8. Ribbon 和 Eureka 积分
  9. Java 之Integer相等比较
  10. 原生JavaScript实现一个简单的todo-list
  11. Vim 在 windows 环境下的初步配置
  12. [FJOI2018]领导集团问题
  13. ASCII,unicode, utf8 ,big5 ,gb2312,gbk,gb18030等几种常用编码区别(转载)
  14. spring+springMvc+struts的SSH框架整合
  15. static加载顺序简介
  16. 每天一个小程序—0014题(txt 转 Excel)
  17. ZOJ 1610 Count the Color(线段树区间更新)
  18. 简单原始的ASP.NET WEBFORM中多文件上传【参考其他资料修改】
  19. Spring学习之路
  20. C 标准库 - string.h之memcmp使用

热门文章

  1. $.extend用法详解(一)
  2. 工信部<<大数据产业发展规划>>
  3. Spring表达式语言:SpEl
  4. Spring → 04:Bean(1)
  5. bzoj1579 道路升级
  6. 【Leetcode链表】分隔链表(86)
  7. 百度网盘直链下载助手(MacOS&Chrome)
  8. LeetCode75 Sort Colors
  9. CH1401 兔子与兔子
  10. HZOJ 大佬(kat)