import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/*
创建图形化界面
1、常见frame窗体
2、对窗体进行基本设置
比如大小、位置、布局。
3、定义组件
4、将组件通过窗体的add方法添加到窗体中
5、让窗体显示,通过setVisible(true)
*/
public class FrameDemo {
private Frame frame;
private Button btn;
void init(){
frame = new Frame();
// frame.setLocation(10, 300);
// frame.setSize(300, 100);
frame.setBounds(10, 300, 300, 100);
frame.setTitle("FrameDemo");
frame.setLayout(new FlowLayout());
btn = new Button("button");
// btn.setLabel("button");
frame.add(btn);
myevent();
frame.setVisible(true);
}
private void myevent() {
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) { // 在什么情况下调用?
System.out.println("window Closed");
System.exit(0);
super.windowClosed(e);
}
@Override
public void windowClosing(WindowEvent e) {
System.out.println("window Closing");
super.windowClosing(e);
}
});
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("按钮推出");
System.exit(0);
}
});
}
public static void main(String[] args) {
new FrameDemo().init();
}
}
运行结果:点击Frame右上角的关闭按钮的时候,程序只是输出了window Closing,没有输出window Closed,而且Frame没有关闭,为什么啊?
理论上来讲,点击Frame右上角的关闭按钮后,程序应该先输出window Closing ,然后再输出 window Closed,最后关闭,为什么没有达到这种效果?
|