当前页面: 开发资料首页 → J2SE 专题 → 请高手看一下这段代码
请高手看一下这段代码
摘要: 请高手看一下这段代码
import java.awt.*;
import java.awt.event.*;
public class DialogDemo2
{ public static void main(String args[])
{ MyDialogFrame frmdialog=new MyDialogFrame();}
}
class MyDialogFrame extends Frame implements ActionListener
{ Dialog mydialog;
TextField t=new TextField(-#34;Hello Java-#34;);
Button b=new Button(-#34;删除文字-#34;);
Label prompt=new Label(-#34;真要删除文本框中的文字嘛?-#34;);
Button b1_dialog=new Button(-#34;确定-#34;);
Button b2_dialog=new Button(-#34;放弃-#34;);
MyDialogFrame()
{ super(-#34;我的框架-#34;);
setLayout(new FlowLayout());
add(t);
add(b);
b.addActionListener(this);
b1_dialog.addActionListener(this);
b2_dialog.addActionListener(this);
addWindowListener(new closeWin());
setSize(300,100);
show();
}
public void actionPerformed(ActionEvent e)
{ String text;
text=e.getActionCommand();
if (text==-#34;删除文字-#34;);
{ mydialog=new Dialog(this,-#34;My Dialog-#34;,true);
mydialog.setSize(200,100);
mydialog.setLayout(new FlowLayout());
mydialog.add(prompt);
mydialog.add(b1_dialog);
mydialog.add(b2_dialog);
mydialog.show();
}
if(text==-#34;确定-#34;)
{t.setText(-#34; -#34;);
mydialog.dispose();
}
}
class WinAdapt extends WindowAdapter
{ public void windowClosing(WindowEvent e)
{ ((Frame)e.getWindow()).dispose();
System.exit(0);}
}
}
点击对话框中的确定却无法完成关闭的操作,不知道为什么了,请高手指教呀!
addWindowListener(new closeWin());
貌似应该改成
addWindowListener(new WinAdapt());
if (text==-#34;删除文字-#34;); //你都直接分号了,等于没有判断
偶喜欢用 JOptionPane.showOptionDialog做弹出的判断
再问:
class WinAdapt extends WindowAdapter
{ public void windowClosing(WindowEvent e)
{ ((Frame)e.getWindow()).dispose();
System.exit(0);}
}
这段代码是使关闭按钮生效,但是为什么还是没用呢?有什么问题嘛?
请指教!
原因很简单,这是一个内部类,但是你没有调用它,所以不会触发关闭这个事件
addWindowListener(new WinAdapt())
if (text==-#34;删除文字-#34;)
改完了上面的错误应该没什么问题了阿
我运行了一下,是可以的。