首页 > 其他分享 >04 Panel 面板 和监听器

04 Panel 面板 和监听器

时间:2023-02-16 18:45:07浏览次数:25  
标签:04 frame WindowAdapter 监听器 new Panel panel

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

相关文章

  • 04-Elasticsearch的 JestClient
    04-Elasticsearch的JestClient1.介绍任何使用过Elasticsearch的人都知道,使用基于rest的搜索API构建查询可能是单调乏味且容易出错的。在本教程中,我们将研究Jest,一个用......
  • WinForm滚动条美化-Panel示例(一)
    关于滚动条美化网上翻阅相关资料大概分两种,一是覆盖原有滚动条;二是纯靠绘制+钩子实现;两种实现方式都依赖系统Api来实现;话不多说先上效果图该效果主要是隐藏滚动条;消息拦......
  • SpringMVC04 - 获取请求参数
    获取请求携带的三种数据:参数、请求头信息、Cookie@RequestMapping("/param")publicStringgetParam(@RequestParam(value="userName",required=true,default......
  • leetcode-10460-easy
    LastStoneWeightYouaregivenanarrayofintegersstoneswherestones[i]istheweightoftheithstone.Weareplayingagamewiththestones.Oneachtur......
  • 代码随想录算法训练营 第一天 | 704. 二分查找,27. 移除元素
    二分查找心得:1,两种区间查找方式 第一种左闭右闭 关键有三点从0到length-1 边界取值left=mid+1或right=mid-1 查找条件是left<=right第二种左闭右开 ......
  • 【算法训练营day43】LeetCode1049. 最后一块石头的重量II LeetCode494. 目标和 LeetCo
    LeetCode1049.最后一块石头的重量II题目链接:1049.最后一块石头的重量II独上高楼,望尽天涯路一开始还是没有想到怎么转化成01背包问题,所以直接看题解找思路慕然回首,灯......
  • day04
    上节课复习:1、机器语言、汇编语言、编译型、解释型语言在执行效率、开发效率、跨平台性方面的高低对比2、python解释器与python语言的关系1、pytho......
  • 104. 二叉树的最大深度
    题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。方法1深度优先搜索描述......
  • 【LeetCode队列#04】逆波兰表达式求值(仍然是经典的栈操作)
    逆波兰表达式求值力扣题目链接(opensnewwindow)根据逆波兰表示法,求表达式的值。有效的运算符包括+,-,*,/。每个运算对象可以是整数,也可以是另一个逆波兰表达......
  • OpenHarmony编译固件新增支持Ubuntu22.04平台
    现在OpenHarmonymaster最新分支可以在Ubuntu22.04上编译了,之前只支持在Ubuntu20.04和18.04上编译。最近发布的Beta5以及之前的版本还不支持,需要修改源码解除ubuntu22.04......