---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
今天跟老毕学习GUI,很开心很爽,尤其是监听器的安装这一块儿,原来绕来绕去把自己都给搞懵了,现在跟着老毕一起做了一遍,思路清晰多了,如有错误,也请高手指教:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class ListDemo
{
//第一步将要用到的组建在这里初始化
private Frame f;
private Button b;
private TextField tf;
private TextArea ta;
private Dialog d;
private Button okBt;
private Label l;
//创建一个构造函数,再将需要对象一初始化就装载的程序放到构造函数中;
public ListDemo()
{
init();
}
//创建事件管理方法
public void init()
{
f = new Frame("My Frame");
f.setBounds(300,100,600,400);
f.setLayout(new FlowLayout());
f.addWindowListener(new WindowAdapter()/*在这里我们给窗口对象安装了窗口监听器,
当窗口动作(或叫事件)发生时,会有一个事件信息文件被传到该监听器,
监听器根据事件信息,调用相应的方法 */
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
tf = new TextField(50);
tf.addActionListener(new ActionListener()//这是TextField的自身特有的动作监听器,其实就是当你击回车键时,监听器该做什么
{
public void actionPerformed(ActionEvent e)
{
ta.setText("");
show();
}
});
f.add(tf);
b = new Button("提交");
b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent a)
{
ta.setText("");
show();
}
});
f.add(b);
ta = new TextArea(20,60);
f.add(ta);
f.setVisible(true);
d = new Dialog(f,"错误提醒",true);
d.setBounds(400,200,300,150);
d.setLayout(new FlowLayout());
d.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
d.setVisible(false);
}
});
l = new Label();
d.add(l);
okBt = new Button("确定");
okBt.addActionListener(new ActionListener()//给错误提示框里的按钮安装监听器
{
public void actionPerformed(ActionEvent e)
{
d.setVisible(false);
tf.setText("");
}
});
d.add(okBt);
}
private void show()//这里是将事件里的显示方法独立封装,提高代码的复用性.
{
String dirPath = tf.getText();
File f = new File(dirPath);
if(f.exists() && f.isDirectory())
{
String[] names = f.list();
for(String name : names)
{
ta.append(name+"\r\n");
}
}
else
{
String info = "您输入的地址名"+dirPath+"不存在,请重新输入!";
l.setText(info);
d.setVisible(true);
}
}
public static void main(String[] args)
{
new ListDemo();
}
}
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------