关于GUI的一个应用实例,学得越多,越感觉有意思

来源:互联网 发布:logback 配置输出sql 编辑:程序博客网 时间:2024/06/06 12:39

---------------------- 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培训、期待与您交流! ----------------------

原创粉丝点击