还有,你没有搞清楚你是用继承方式还是组合方式。
继承方式的话,就让你的类extends Frame,然后直接在构造方法中addWindowListener(new WindowAdapter() { ... })就可以了。
组合方式的话,不需要extends Frame,但要设置一个Frame类型的成员变量,并在构造函数中初始化它,再对该成员调用addWindowListener(new WindowAdapter() { ... })。
下面分别是我整理的继承方式和组合方式的代码,供你参考:
Java code// 继承方式使用Frame
import java.awt.*;
import java.awt.event.*;
public class ExGui extends Frame {
private Button b1;
private Button b2;
public ExGui() {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String args[]) {
ExGui that = new ExGui();
that.go();
}
public void go() {
setLayout(new FlowLayout(FlowLayout.RIGHT));
b1 = new Button("Press Me");
b2 = new Button("Don't Press Me");
add(b1);
add(b2);
setSize(555, 666);
setVisible(true);
}
}
Java code// 组合方式使用Frame
import java.awt.*;
import java.awt.event.*;
public class ExGui {
private Frame f;
private Button b1;
private Button b2;
public ExGui() {
f = new Frame();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String args[]) {
ExGui that = new ExGui();
that.go();
}
public void go() {
f.setLayout(new FlowLayout(FlowLayout.RIGHT));
b1 = new Button("Press Me");
b2 = new Button("Don't Press Me");
f.add(b1);
f.add(b2);
f.setSize(555, 666);
f.setVisible(true);
}
}
另外,setSize()和pack()用其中一个就可以了。