---------------------- android培训、java培训、期待与您交流! ----------------------
黑马程序员-GUI文件浏览器
/*定义一个窗口,列出指定目录中内容
*具有错误提示对话框
*
* */
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class MywindowDemo
{
//定义图形中所需组件的引用
private Frame f;
private Button but,okbut;
private TextField tf;
private TextArea ta;
private Dialog d;
private Label lab;
MywindowDemo()
{
init();
}
public void init()
{
//Frame 是带有标题和边框的顶层窗口。
f=new Frame("my frame");
//对frame进行尺寸设置。
f.setBounds(300,100,600,500);
//设置布局
f.setLayout(new FlowLayout());
//创建文本框,TextField 对象是允许编辑单行文本的文本组件。
tf=new TextField(60);
//转到按钮
but=new Button("转到");
//TextArea 对象是显示文本的多行区域。可以将它设置为允许编辑或只读。
ta=new TextArea(25,70);
// Dialog 是一个带标题和边界的顶层窗口,边界一般用于从用户处获得某种形式的输入。
d=new Dialog(f,"提示信息-self",true);
//设置对话框尺寸
d.setBounds(400,200,240,150);
//设置对话框布局
d.setLayout(new FlowLayout());
//Label 对象是一个可在容器中放置文本的组件。
lab=new Label();
//创建确定按钮
okbut=new Button("确定");
//将组建添加进frame中。
f.add(tf);
f.add(but);
f.add(ta);
d.add(lab);
d.add(okbut);
//加载窗体事件。
myEvent();
//显示窗体。
f.setVisible(true);
}
private void myEvent()
{
//WindowListener用于接收窗口事件的侦听器接口。
//因为该接口中方法较多,而我们现在只用到一个,如果实现他覆盖全部方法很麻烦。
//所以我们找到他的子类,WindowAdapter窗口监听适配器。
//特点:接收窗口事件的抽象适配器类。此类中的方法为空。此类存在的目的是方便创建侦听器对象。
//我们用匿名内部类的方式实现他,然后复写他的关闭方法。
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//转到按钮活动监听
but.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
showd();
}
});
//窗口监听
d.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
//关闭对话框
d.setVisible(false);
}
});
//按钮控制对话框关闭
okbut.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//System.out.println("按钮");
//关闭对话框
d.setVisible(false);
}
});
//键盘输入转到。
tf.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
//判断输入的键值等于enter键的值
if(e.getKeyCode()==KeyEvent.VK_ENTER)
{
showd();
}
}
});
}
//转到按钮实现功能。
private void showd()
{
//获取在Textfield文本框中输入的地址。
String dirPath=tf.getText();
//将地址封装成对象。
File dir=new File(dirPath);
//判断地址对象是否存在和是不是目录。
if(dir.exists() && dir.isDirectory())
{
//清屏,即在开始存入空字符,setText将会替换原有内容。
ta.setText("");
//创建字符串数组,存放目录列表
String[] names=dir.list();
//遍历列表,将列表存入
for(String name : names)
{
//使用append方法存入,追加方法。
ta.append(name+"\r\n");
}
}
else
{
//定义报错提示内容。
String info="你输入的"+dirPath+"有误";
//把内容定义到对话框中。
lab.setText(info);
//显示对话框
d.setVisible(true);
}
}
}
public class GUI2
{
public static void main(String[] args)
{
new MywindowDemo();
}
}