Panel 可以看成是一个空间,但是面板不能单独存在
思路:
- 首先new两个窗口,一个总的窗口frame,一个面板panel
- 然后给总窗口设置布局,因为如果不设置布局,会默认置顶,所以让他为null
- 然后设置窗口的坐标,又设置了面板的坐标,面板由于添加到了咱们的窗口里面,所以它是一个相对坐标
- 最后设置可见性
补充:
添加一个窗口监听事件,这样窗口就能正常退出了
package com.gui.lesson1; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; //Panel 可以看成是一个空间,但是面板不能单独存在 public class TestPanel { public static void main(String[] args) { Frame frame = new Frame(); //布局 Panel panel = new Panel(); //设置布局,如果不设置会默认置顶 frame.setLayout(null); //坐标 frame.setBounds(300, 300, 500, 500); frame.setBackground(new Color(40, 160, 35)); //Panel设置坐标 ,相对于frame panel.setBounds(50, 50, 400, 400); panel.setBackground(new Color(219, 18, 43)); //frame.add(panel) Panel继承Container继承Component 因此方法里面可以放面板 frame.add(panel); //设置可见性 frame.setVisible(true); //监听事件,监听窗口关闭事件,点右上角的X能关掉窗口 System.exit(0) //适配器模式: 本身是WindowListener接口 要重写许多方法,而只要我们选一个它的子类,我们需要实现哪个方法实现一下这个接口就ok frame.addWindowListener(new WindowAdapter() { //窗口点击关闭的时候需要做的事情 @Override public void windowClosing(WindowEvent e) { //结束程序 System.exit(0);//1是有异常的退出 } }); } }
添加了一个监听事件,点击右上角可以正常退出了