欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何在Java中运用Panel组件并监听窗口关闭事件

最编程 2024-02-11 10:32:34
...

面板Panel的使用

待解决问题:
1.设计模式:适配器模式
2.frame.setLayout(null);

package GUI;

import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

// Panel 可以看成一个空间,不能单独存在,可以嵌套在Frame中
public class TextPanel {
    public static void main(String[] args) {
        Frame frame = new Frame();
        Panel panel = new Panel();

        // 设置布局,如果不设置,Frame不显示
        frame.setLayout(null);

        // 设置 Frame大小,颜色,可见性
        frame.setBounds(500,500,500,500);
        frame.setBackground(new Color(190, 204, 131));

        // 设置 Panel大小,颜色,可见性
        panel.setBounds(50,50,400,400);
        panel.setBackground(new Color(253, 200, 155));

        // 将 Panel嵌入到 Frame中
        frame.add(panel);
        frame.setVisible(true);

        // 监听窗口关闭事件 System.exit(0);
        // 适配器模式
        frame.addWindowListener(new WindowAdapter() {   // 实现了WindowListener接口
            @Override
            public void windowClosing(WindowEvent e) {
                // super.windowClosing(e);
                System.exit(0);
            }
        });

        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) {

            }
        });
    }
}