Java GUI编程lesson04-Panel

Panel是什么?

Panel是Windows窗体控件用于为其他控件提供可识别的分组。自我理解为面板,也就是划分区域。

panel怎么使用?

public class TestPanel {
    public static void main(String[] args) {
        //1.首先new一个frame窗口,因为panel不能单独存在,
        //需要添加到frame中
        Frame frame = new Frame("添加了Panel的Frame窗口");

        //2.然后new一个panel面板,panel需要用到布局的概念
        Panel panel = new Panel();

        //3.设置布局:先设置为空,测试效果
        frame.setLayout(null);

		//4.设置frame以及panel的坐标和背景
        //设置窗口坐标以及背景
        frame.setBounds(300, 300, 500, 500);
        frame.setBackground(new Color(121, 161, 135));

        //设面板坐标以及背景,相对于frame的坐标
        panel.setBounds(50, 50, 400, 400);
        panel.setBackground(new Color(35, 128, 11));

        //5.将panel添加到窗口中
        frame.add(panel);

        //6.将窗口可视化,才能看见窗口
        frame.setVisible(true);
        
    }
}

效果展示:
添加了Panel的Frame窗口
这样就在Frame中添加了Panel面板,由于窗口一直关闭不了(只能通过IDEA的控制台强行结束),所以要解决一下此问题。

需要解决窗口关闭问题,就要引入监听事件

由于是窗口关闭问题,所以应该是监听窗口关闭事件
fram类里有windows监听器,我们就添加一个,然后根据他需要的参数,new一个监听器

frame.addWindowListener(new WindowListener() {
            @Override
            public void windowOpened(WindowEvent e) {
                
            }

            @Override
            public void windowClosing(WindowEvent e) {

            }

            @Override
            public void windowClosed(WindowEvent e) {

            }

            @Override
            public void windowIconified(WindowEvent e) {

            }

            @Override
            public void windowDeiconified(WindowEvent e) {

            }

            @Override
            public void windowActivated(WindowEvent e) {

            }

            @Override
            public void windowDeactivated(WindowEvent e) {

            }
        });

添加以后它自动导入需要重写的方法,但是这种方法太过于繁琐,所以我们使用23种模式的适配器模式简化此操作。操作思想就是我们通过new它的一个子类来实现它的某一个方法,刚好在awt包里有WindowAdapter类,Adapter可以实现WindowsListener的接口
在这里插入图片描述
所以简化操作为:

//        监听事件,监听窗口关闭的事件 System.exit(0)
//        适配器模式:
        frame.addWindowListener(new WindowAdapter() {
            //窗口点击关闭的时候需要做的事情
            @Override
            public void windowClosing(WindowEvent e) {//选择重写Closing方法
                //结束程序
                System.exit(0);
            }
        });

做完以上操作后,我们再点击窗口的关闭就可以直接将窗口关闭了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值