如何在awt中关闭窗口?

我在awt中创建一个小的应用程序,当我关闭窗口时,关闭按钮不起作用,但是我已经添加了关闭按钮的function,之后关闭按钮不起作用…

import java.awt.*; import java.applet.*; import java.awt.event.*; import javax.swing.*; class ButtonDemo1 implements ActionListener { Button b1; TextField tf; Frame f; ButtonDemo1(String s) { f=new Frame(s); b1=new Button("OK"); tf=new TextField(10); f.setSize(200,250); f.setVisible(true); b1.addActionListener(this); f.add(tf); f.add(b1); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we) { System.exit(0); } }); f.setLayout(new FlowLayout()); } public void actionPerformed(ActionEvent e) { if(e.getSource()==b1) { tf.setText("Press Ok"); } } public static void main(String args[]) { new ButtonDemo1("First"); } } 

为什么关闭按钮不起作用?

最好使用方法public void dispose()

为什么要处理超出范围的java.awt.Window?

 f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent we) { dispose(); } } ); 

你可以这样做:

 f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ System.exit(0); } }); 

尝试这样做:

 class ExampleClass implements ActionListener, WindowListener { ... f.addWindowListener(this); ... public void windowDeactivated(WindowEvent e) {} public void windowDeiconified(WindowEvent e) {} public void windowIconified(WindowEvent e) {} public void windowOpened(WindowEvent e) {} public void windowActivated(WindowEvent e) {} public void windowClosed(WindowEvent e) {} public void windowClosing(WindowEvent e) { System.exit(0); } }