4、Panel面板详解
Panel面板与Frame一样,但是Panel可以内嵌进Frame,Panel有一个特性是不能单独存在,必须内嵌到Frame或弹窗中,Panel是一个面板,面板应该容器里面,可以看成是一个空间,但是不能单独存在,需要内嵌在Frame中。
Panel需要放在Frame中,反过来说也就是在Frame中添加Panel,这里panel能当做add的参数是因为Panel继承了Container,而Container又继承了Component
之所以这样做的原因是,在后面学习的组件都放在Panel中而不是直接放在窗口Frame上
package com.dryant.lesson1;import java.awt.*;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;//Panel 可以看成是一个空间,但是不能单独存在,需要内嵌在Frame中public class TestPanel {public static void main(String[] args) {Frame frame = new Frame();//面板中有一个布局的概念Panel panel = new Panel();//frame有一个默认的布局管理器,这里我们将其设置为null//这里需要将其设置为空的原因是如果不设置,panel将填充整个Frameframe.setLayout(null);//设置坐标frame.setBounds(300,300,500,500);frame.setBackground(new Color(40,161,35));//设置Panel坐标大小panel.setBounds(50,50,400,400);panel.setBackground(new Color(239, 138, 138));//Panel需要放在Frame中,反过来说也就是在Frame中添加Panel//这里panel能当做add的参数是因为Panel继承了Container,而Container又继承了Componentframe.add(panel);//布局完之后需要将Frame显现出来frame.setVisible(true);//监听时间,监听窗口关闭事件 System.exit()//这里我们使用一种模式叫做“适配器模式”,一共有23设计模式/*适配器模式就是指:面对大量的接口需要实现的情况下,程序员就要想办法只用实现其中的一个就可以了不用全部实现,实现的方法就是用一个类取继承那个类,在继承中用一个默认事件再重写这些接口就可以了这里就是选择了WindowAdapter(),他是WindowListener的子类实现了WindowListener的接口*/frame.addWindowListener(new WindowAdapter(){//窗口点击关闭的时候需要做的事情@Overridepublic void windowClosing(WindowEvent e) {//super.windowClosing(e);//结束程序System.exit(0);//这是AWT解决窗口关闭的问题}});}}
这里我们后面还要学习23种设计模式
/*适配器模式就是指:面对大量的接口需要实现的情况下,程序员就要想办法只用实现其中的一个就可以了不用全部实现,实现的方法就是用一个类取继承那个类,在继承中用一个默认事件再重写这些接口就可以了这里就是选择了WindowAdapter(),他是WindowListener的子类实现了WindowListener的接口*/