How to close the window in awt?

I am creating a samll aplication in awt, when i am closing the window, closing button is not working, but i have added the functionality of closing button, after that closing button is not working…

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");
}


}

why closing button is not working?

It’s better to use the method public void dispose()

Why should you have to dispose() a java.awt.Window that goes out of scope?

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

You could do it like this:

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

Try doing it like this:

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);
}

}