import java.awt.*;
import java.awt.event.*;
import java.io.*;
class MyWindowDemo
{
private Frame f;
private Button but;
private TextField tf;
private TextArea ta;
private Dialog d; //对话框窗体组件
private Label lab; //文本组件
private Button okBut;
MyWindowDemo()
{
init();
}
//窗体和组件
public void init()
{
f = new Frame("我的程序");
but = new Button("列出");
tf = new TextField("您好!这是列出目录中所有文件的程序,请在此处输入“有效”路径!",70);
ta = new TextArea("例如输入:d:\\\r\n\r\n则输出D盘下的所有文件和文件夹",26,77);
f.setBounds(200,100,600,500);
f.setLayout(new FlowLayout());
d = new Dialog(f,"提示信息",true); //需要使用时再创建,为了方便学习,在此创建
d.setBounds(400,200,240,150);
d.setLayout(new FlowLayout());
lab = new Label(); //创建文本组件,可以初始化内容,但调用时可以同过setText()方法添加内容
okBut = new Button("确定");
d.add(lab);
d.add(okBut);
f.add(tf);
f.add(but);
f.add(ta);
myEvent();
f.setVisible(true);
}
//监听器
public void myEvent()
{
//窗体 --窗体监听器
f.addWindowListener (new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//文本框组件 --鼠标监听器 -- 鼠标点击,清空文本框内容
tf.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
tf.setText("");
}
});
//文本框组件 -- 键盘监听器 --调用我的方法
tf.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==e.VK_ENTER)
showDir();
}
});
//按钮组件 -- 活动监听器 --调用我的方法
but.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
showDir();
}
});
//对话框窗体 -- 窗体监听器 --让对话框窗体消失
d.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
d.setVisible(false);
}
});
//对话框窗体按钮组件 -- 键盘监听器 --让对话框窗体消失
okBut.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==e.VK_ENTER)
d.setVisible(false);
}
});
}
//我的方法
public void showDir()
{
String dirPath = tf.getText(); //获取文本框组件内用户输入的内容
File dir = new File(dirPath); //使用用户输入的路径创建文件对象
if(dir.exists() && dir.isDirectory()) //判断用户输入的路径是否是有效路径且是否是一个文件夹
{
ta.setText(""); //清空文 本区域 中的内容
String []names = dir.list(); //定义字符串数组
for(String name : names) //遍历字符串数组
{
ta.append(name+"\r\n"); //将遍历的内容添加到 文本区域
}
}
else
{
String info = "您输入的信息不是有效路径,请重输入";
lab.setText(info);
d.setVisible(true);
//ta.setText("输入的不是有效路径");
}
}
public static void main(String []args)
{
new MyWindowDemo();
}
}
|