从Frame中弹出一个Dialog,点右上角红叉关闭Dialog时Frame也关闭,怎样让能点右上角红叉时返回Frame

pilgram_3 2008-04-27 08:35:35
从Frame中弹出一个Dialog,点右上角红叉关闭Dialog时Frame也关闭,
怎样让能点右上角红叉时返回Frame


参考代码(已调试过):
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class enc2_2 extends WindowAdapter implements ActionListener
{
private Frame f;
private TextField tf1,tf2;
private Button b1,b2;
public static void main (String[] args){
enc2_2 a=new enc2_2();
a.go();
}
public void go(){
f=new Frame("enc2");
f.addWindowListener(this);
f.setLayout(new FlowLayout());
tf1=new TextField("",30);
tf2=new TextField("code",6);
b1=new Button("ok");
b2=new Button("exit");
b1.addActionListener(this);
b2.addActionListener(this);
f.add(tf1);
f.add(tf2);
f.add(b1);
f.add(b2);
f.setSize(500,500);
f.setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("ok"))
{
if(!tf2.getText().equals("abc"))
{
InfoDialog ifd=new InfoDialog(f,true);
ifd.l1.setText("密码错误");
ifd.addWindowListener(this);
ifd.show();
}
}
else if(e.getActionCommand().equals("exit"))System.exit(0);
}
public void windowClosing(WindowEvent we){System.exit(0);}
}
class InfoDialog extends Dialog implements ActionListener{
Label l1=new Label("完成");
Button bb=new Button("返回");
InfoDialog(Frame fr,boolean m){
super(fr,m);
add(l1);
bb.addActionListener(this);
add("South",bb);
setSize(300,100);
}
public void actionPerformed(ActionEvent e){
dispose();
}
}



...全文
217 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
awusoft 2008-04-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 Inhibitory 的回复:]
对Dialog的窗口关闭事件不要用exit(),而使用dispose();

因为exit是把JVM虚拟机给关掉, 这样整个程序都退出了, 而你需要的只是把Dialog的资源释放掉, 而返回主窗口。
[/Quote]
Inhibitory 2008-04-28
  • 打赏
  • 举报
回复
对Dialog的窗口关闭事件不要用exit(),而使用dispose();

因为exit是把JVM虚拟机给关掉, 这样整个程序都退出了, 而你需要的只是把Dialog的资源释放掉, 而返回主窗口。
jack462 2008-04-28
  • 打赏
  • 举报
回复
对同意楼上的
a_nuo 2008-04-28
  • 打赏
  • 举报
回复
windowClosing中的代码该如下
    public void windowClosing(WindowEvent we){
if(!we.getSource().equals(ifd))
System.exit(0);
else ifd.dispose();
}
pilgram_3 2008-04-28
  • 打赏
  • 举报
回复
谢谢各位,明白了。

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧