How to close the window in AWT?
I am creating a small application using AWT. When I try to close the window, the "close" button doesn't work.
Here's my code:
import java.awt.*;
import java开发者_如何学Python.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");
}
}
How can I fix the "close" button?
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);
}
}
精彩评论