Panel 面板 和监听器
package demo04;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class TestPanel {
// Panel 面板(小窗口),不能单独存在,必须要嵌套在 Frame(总窗口) 里面
// Panel 可以有多个,多个Panel 只能嵌套在一个 Frame 里面
// 组件一般先放在panel里面,然后panel放在frame 里面
public static void main(String[] args) {
// 创建两个类的对象
Frame frame = new Frame("唯一的窗口");
Panel panel = new Panel();
// 设置布局
frame.setLayout(null);
// frame 设置
frame.setBounds(300,300,500,500);
frame.setBackground(Color.blue);
frame.setVisible(true);
// panel 设置
panel.setBounds(50,50,300,300); // 相对坐标,绝对长度
panel.setBackground(Color.black);
// panel 不需要 panel.setVisible(true);
// 将 panel 嵌套在 frame 里面
frame.add(panel);
// 监听事件,监听窗口关闭事件 System.exit(0);
// 适配器模式:只需要重写需要的方法
/*
Listener(监听器): 不可视化组件,里面存在各种方法来根据监听的事件采取行动
之前学的都是可视化组件
WindowAdapter 是一个抽象类(看源码!),负责实现 WindowListener 接口,所以我们要重写它的方法
这段代码才是监听器(一个对象,由对象重写并调用特殊的方法来完成监听的功能)
实际上是 这里用到了:匿名内部类(实际上是对象)+匿名代码块
new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
*/
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0); // 强制退出程序
}
});
}
}
标签:04,frame,WindowAdapter,监听器,new,Panel,panel
From: https://www.cnblogs.com/zhanjianhai/p/17127902.html