本帖最后由 $love 于 2013-5-13 22:09 编辑
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;
// 为什么事件写在showDialog()方法的
//else里面去点那个提示窗体的按钮和关闭按钮会没有效果,
//而这两个事件丢在myEvent() 这个方法里就有效果
public class LianXiDemo {
/**
* @param args
*/
// 构造函数
public LianXiDemo() {
init();
}
private Frame fr;
private Button b;
private TextField t;
private TextArea ta;
private Dialog d = new Dialog(fr, "提示框", true);
private Button bok = new Button("确定");
// 初始化图形界面
public void init() {
// 初始化窗体
fr = new Frame("我的图形化界面");
// 设置窗体坐标,宽高
fr.setBounds(200, 300, 500, 400);
// 设置布局样式
fr.setLayout(new FlowLayout());
t = new TextField(30);
fr.add(t);
b = new Button("转到");
fr.add(b);
ta = new TextArea(10, 50);
fr.add(ta);
// 设置窗体可见性
fr.setVisible(true);
// 加載窗體事件
myEvent();
}
// 响应的对应事件
private void myEvent() {
fr.addWindowListener(new WindowAdapter() {
// 窗体关闭按钮响应事件
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//单行文本按enter响应事件
t.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==e.VK_ENTER){
showDialog();
}
}
});
// 点击转到按钮响应事件
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
showDialog();
}
});
}
//触发事件弹出提示框共用方法
private void showDialog(){
ta.setText("");
String name = t.getText();
File f = new File(name);
if (f.exists()&& f.isDirectory()) {
for (String str : f.list()) {
ta.append(str + "\r\n");
}
} else {
// 路径不存在,弹出提示框
d = new Dialog(fr, "提示框", true);
Label la = new Label();
d.setBounds(200, 300, 200, 100);
d.setLayout(new FlowLayout());
la.setText(null);
la.setText("您好,你填写的路径:" + name + "不存在,请重写填写");
d.add(la);
d.add(bok);
d.setVisible(true);
/** 为什么我把这两个事件写在else里面去点那个提示窗体的按钮和关闭按钮会没有效果,而这两个事件丢在myEvent() 这个方法里就有效果
// 点击模式窗口确定按钮响应事件
bok.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
d.setVisible(false);
}
});
// 点击模式窗口关闭按钮响应事件
d.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
d.setVisible(false);
}
});
*/
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new LianXiDemo();
}
}
|