黑马程序员技术交流社区
标题:
当输入错误时 ,为什么 弹出来的对话框,点击关闭和确定都没反应
[打印本页]
作者:
廖理
时间:
2012-5-16 12:33
标题:
当输入错误时 ,为什么 弹出来的对话框,点击关闭和确定都没反应
以下功能要求:在文本框中输入目录,点击转到按钮。将该目录下的文件与文件夹名列在下面的文本域中;
当输入的不是目录时或目录不存在时,弹出对话框,提示出错,请重输入。我们可以点击确定或关闭此对话框,但为什么以下程序,当输入错误时 ,为什么 弹出来的对话框,点击关闭和确定都没反应呢?
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();
}
}
作者:
云惟桉
时间:
2012-5-16 12:56
d.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
d.dispose();
}
});
//okButton的监听:1.鼠标;2.Space键(默认)
okBut.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
d.dispose();
}
});
复制代码
楼主的关闭按钮没设置监听动作,肯定关不掉了。
对于确定按钮,楼主可以把动作d.setVisible(false)换成d.dispose(); 将对话框对象释放掉,就没问题了。
代码如上,希望能帮到你噢!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2