以下功能要求:在文本框中输入目录,点击转到按钮。将该目录下的文件与文件夹名列在下面的文本域中;
当输入的不是目录时或目录不存在时,弹出对话框,提示出错,请重输入。我们可以点击确定或关闭此对话框,但为什么以下程序,当输入错误时 ,为什么 弹出来的对话框,点击关闭和确定都没反应呢?
import java.awt.*;
import java.io.*;
import java.awt.event.*;
class GUIDemo{
private Frame f = new Frame("窗口_1");
private TextField tf = new TextField(50);
private Button b = new Button("转到");
private TextArea tt = new TextArea(60,60);
GUIDemo(){
init();
event();
}
public void init(){
f.setBounds(200,200,500,500);
f.setLayout(new FlowLayout());
f.add(tf);
f.add(b);
f.add(tt);
f.setVisible(true);
}
public void event(){
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
tt.setText("");
String str = tf.getText();
File ff = new File(str);
if(ff.exists()&&ff.isDirectory()){
String[] files = ff.list();
for(String name : files){
tt.append(name+"\r\n");
}
}else{//如果输入格式错误,弹出一个对话框提示
final Dialog d = new Dialog(f,true);
Label l = new Label();
Button but_ok = new Button("确定");
l.setText("输入的"+str+"格式错误,其重输");
d.setBounds(300,300,200,150);
d.setLayout(new FlowLayout());
l.setText("输入的"+str+"格式错误,请重输");
d.add(l);
d.add(but_ok);
d.setVisible(true);
d.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.out.println("haahhaahah");
d.setVisible(false);
}
});
but_ok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
d.setVisible(false);
}
});
}
}
});
}
public static void main(String[] args){
GUIDemo g = new GUIDemo();
}
} |
|