JavaAwtSwing的JFrame的pack()方法,容器适配子组件大小,笔记231220

pack()是extends自Window类的方法

使此窗口的大小适合其子组件的首选大小和布局。如果其中一个尺寸小于上一次调用setMinimumSize方法指定的最小尺寸,则会自动放大窗口的宽度和高度。

如果窗口和/或其所有者还不可显示,则在计算首选大小之前,将使它们都可显示。在计算窗口的大小后对其进行验证。

@SuppressWarnings("deprecation")public void pack() {Container parent = this.parent;if (parent != null && parent.peer == null) {parent.addNotify();}if (peer == null) {addNotify();}Dimension newSize = getPreferredSize();if (peer != null) {setClientSize(newSize.width, newSize.height);}if(beforeFirstShow) {isPacked = true;}validateUnconditionally();}
例1 , 外容器会变成子组件的大小
import javax.swing.*;import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class Pack测试231219 {public static JFrame frame = new JFrame(Thread.currentThread().getStackTrace()[1].getClassName());static{frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {super.windowClosing(e);System.exit(0);}});frame.setBounds(100,100,1024,768);}static void init() {}static void step1() {int sleep = 3000;JLabel jlb = new JLabel("""<html><style>#div001{ padding:100px 50px; }.c1{font-size:16px; color:blue;}</style><div id="div001" style="background:red; ">"""+"<center class=c1 >"+sleep+"毫秒后</center>"+"<center class=c1 >"+"调用frame.pack()"+"</center>"+"""</div></html>		""");jlb.setOpaque(true);jlb.setBackground(Color.DARK_GRAY);jlb.setHorizontalAlignment(JLabel.CENTER);jlb.setVerticalAlignment(JLabel.CENTER);frame.add(jlb, BorderLayout.CENTER);try {frame.setVisible(true);Thread.sleep(sleep);frame.pack();}catch(Exception ex) {ex.printStackTrace();}}static void step2() {}public static void main(String[] arguments)throws Exception {init(); step1(); step2 ();}}

效果
在这里插入图片描述

例2 , 如果子组件设置了 setPreferredSize() , 外容器会变成子组件setPreferredSize()的大小

这个例子中jlb.setPreferredSize(new Dimension(600,600));
jlb.setSize()无效

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class Pack测试231220 {public static JFrame frame = new JFrame(Thread.currentThread().getStackTrace()[1].getClassName());static{frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {super.windowClosing(e);System.exit(0);}});frame.setBounds(100,100,1024,768);}static void init() {}static void step1() {int sleep = 3000;JLabel jlb = new JLabel("""<html><style>#div001{ padding:100px 50px; }.c1{font-size:16px; color:blue;}</style><div id="div001" style="background:red; ">"""+"<center class=c1 >"+sleep+"毫秒后</center>"+"<center class=c1 >"+"调用frame.pack()"+"</center>"+"""</div></html>		""");jlb.setOpaque(true);jlb.setBackground(Color.DARK_GRAY);jlb.setHorizontalAlignment(JLabel.CENTER);jlb.setVerticalAlignment(JLabel.CENTER);frame.add(jlb, BorderLayout.CENTER);try {frame.setVisible(true);Thread.sleep(sleep);jlb.setPreferredSize(new Dimension(600,600));frame.pack();}catch(Exception ex) {ex.printStackTrace();}}static void step2() {}public static void main(String[] arguments)throws Exception {init(); step1(); step2 ();}}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/236343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tf卡数据恢复怎么做?记好这4个步骤!

“为了更好的保存数据&#xff0c;我一直都是用TF卡的。很多重要的文件和数据都保存在里面。但是我最近使用时&#xff0c;发现有部分数据丢失了。不知道该怎么办&#xff0c;有没有朋友可以帮帮我呀&#xff1f;” TF卡是一种闪存存储卡&#xff0c;通常用于手机、平板电脑和其…

[Java 基础] Java Stream

Java Stream 是 Java 8 引入的新特性之一&#xff0c;它提供了一种新的处理数据集合的方式。Stream 可以使我们更加方便地对集合进行处理和操作&#xff0c;同时还能提高代码的简洁性和可读性。 文章目录 什么是 Stream常见用法创建 Stream中间操作终端操作 总结 什么是 Stream…

Linux shell编程学习笔记37:readarray命令和mapfile命令

目录 0 前言1 readarray命令的格式和功能 1.1 命令格式1.2 命令功能1.3 注意事项2 命令应用实例 2.1 从标准输入读取数据时不指定数组名&#xff0c;则数据会保存到MAPFILE数组中2.2 从标准输入读取数据并存储到指定的数组2.3 使用 -O 选项指定起始下标2.4 用-n指定有效行数…

应急响应常用命令

应急响应的基本思路 a. 收集信息&#xff1a;收集告警信息、客户反馈信息、设备主机信息等 b. 判断类型&#xff1a;安全事件类型判断。&#xff08;钓鱼邮件、Webshll、爆破、中毒等&#xff09; c. 控制范围&#xff1a;隔离失陷设备 d. 分析研判&#xff1a;根据收集回来的…

北斗高精度基坑安全监测系统解决方案

目录 1.概述 1.1背景 1.2设计原则 1.3建设内容 2.系统架构 2.1总体架构 2.2拓扑图 2.3云平台 2.3.1概述 2.3.2技术架构 2.3.3平台功能 2.4监测子系统 2.4.1位移监测子系统 2.4.2应力监测子系统 2.4.3环境监测子系统 1.概述 1.1背景 基坑监测是基坑工程施工中的…

一个前端大佬的十年回顾 | 漫画前端的前世今生

作者&#xff1a;京东科技 胡骏 引言 岁月如梭&#xff0c;十载流年 前端技术&#xff0c;蓬勃向前 HTML&#xff0c;CSS&#xff0c;JavaScript 演绎出璀璨夺目的技术画卷 回到十年前&#xff0c;前端技术就像一名戴着厚重眼镜的书呆子&#xff0c;总是小心翼翼&#xff…

prometheus 服务不可用

现象: grafana查看面板无数据&#xff0c; prometheus容器一直重启 prometheus日志报错: callerhead.go:685 levelinfo componenttsdb msg"WAL segment loaded" segment448 maxSegment448 解决&#xff1a; docker stop prometheus rm -rf wal/ docker st…

车载蓝牙物联网解决方案

车载蓝牙物联网解决方案是一种基于蓝牙技术&#xff0c;结合物联网技术的智能车载系统。它利用蓝牙技术将智能手机、智能手表、智能车载设备等连接起来&#xff0c;实现设备之间的无缝通信和数据共享&#xff0c;为驾驶者提供更加便捷、安全和智能的驾驶体验。 车载蓝牙物联网解…

浅谈Java 虚拟机(1)

1 Java技术与Java虚拟机 说起Java&#xff0c;人们首先想到的是Java编程语言&#xff0c;然而事实上&#xff0c;Java是一种技术&#xff0c;它由四方面组成: Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。 Java四个方面的关系 运行期环境代…

react hooks浅谈

一.useEffect useEffect是hooks中的生命周期函数 1.只要页面更新就触发回调&#xff1a; useEffect(() > { // 执行逻辑 }) 2.只运行一次&#xff08;组件挂载和卸载时执行&#xff09;&#xff0c;第二个参数传空数组[]&#xff1a; useEffect(() > { // },[]) 3. 条件…

Flask重定向后无效果前端无跳转无反应问题

在网上搜了一下并没有什么好的解决方案&#xff0c;有的话也只是告诉你如何修改代码&#xff0c;并没有讲明白其中的原理以及导致问题的核心&#xff0c;因此特意去了解了一下HTTP的规范找到了答案 问题说明 问题出现的流程大致都是前端发送Ajax请求给后端&#xff0c;进行一些…

【愚公系列】2023年12月 HarmonyOS教学课程 037-ArkUI事件(焦点事件)

&#x1f3c6; 作者简介&#xff0c;愚公搬代码 &#x1f3c6;《头衔》&#xff1a;华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0c;华为产品云测专家&#xff0c;CSDN博客专家&#xff0c;CSDN商业化专家&#xff0c;阿里云专家博主&#xf…

测试理论知识三:测试用例、测试策略

1.测试用例 完全的测试是不可能的&#xff0c;对任何程序的测试必定是不完全的&#xff0c;那么&#xff0c;最显然的测试策略就是努力使测试尽可能完全。 进行测试前&#xff0c;推荐先使用黑盒测试的方法设计测试用例&#xff0c;然后使用白盒测试方法来补充的测试用例。 2…

2023“楚怡杯”湖南省赛“信息安全管理与评估“--内存取证(高职组)

2023“楚怡杯”湖南省“信息安全管理与评估”(高职组)任务书 2023“楚怡杯”湖南省“信息安全管理与评估”(高职组)任务书第一阶段竞赛项目试题第二阶段竞赛项目试题第三部分 内存取证:需要环境私聊博主:2023“楚怡杯”湖南省“信息安全管理与评估”(高职组)任务书 第…

Flink电商实时数仓(三)

DIM层代码流程图 维度层的重点和难点在于实时电商数仓需要的维度信息一般是动态的变化的&#xff0c;并且由于实时数仓一般需要一直运行&#xff0c;无法使用常规的配置文件重启加载方式来修改需要读取的ODS层数据&#xff0c;因此需要通过Flink-cdc实时监控MySql中的维度数据…

相互独立的Gamma分布变量之和的分布

两个变量之和的情况 设随机变量相互独立&#xff0c;并且服从参数为的分布&#xff0c;记作&#xff1b;服从参数为的分布&#xff0c;记作&#xff0c;和的概率密度分别为&#xff1a; 其中 其中 那么随机变量服从参数为的分布&#xff0c;记作。 推广到n个变量之和的情况 …

余弦距离和余弦相似度的区别

余弦相似度&#xff0c;就是计算两个向量间的夹角的余弦值&#xff1a;cosθ &#xff0c;取值范围 [-1,1] 。值越大&#xff0c;相似度越高 余弦距离就是用1减去这个获得的余弦相似度&#xff1a;1-cosθ &#xff0c;取值范围 [0,2] 。值越大&#xff0c;距离越远。 余弦距离…

为什么销售的强刺激政策不管用?

销售人员是联系企业生产与市场的纽带&#xff0c;是一个企业经济效益的直接创造者&#xff0c;他们对企业的贡献举足轻重&#xff0c;对销售人员的激励是否有效关系到整个企业的营销体系稳定与业绩提升。 因此&#xff0c;激励销售人员成为所有老总共同的愿望&#xff0c;甚至…

云原生消息流系统 Apache Pulsar 在腾讯云的大规模生产实践

导语 由 InfoQ 主办的 Qcon 全球软件开发者大会北京站上周已精彩落幕&#xff0c;腾讯云中间件团队的冉小龙参与了《云原生机构设计与音视频技术应用》专题&#xff0c;带来了以《云原生消息流系统 Apache Pulsar 在腾讯云的大规模生产实践》为主题的精彩演讲&#xff0c;在本…

进阶之路:高级Spring整合技术解析

Spring整合 1.1 Spring整合Mybatis思路分析1.1.1 环境准备步骤1:准备数据库表步骤2:创建项目导入jar包步骤3:根据表创建模型类步骤4:创建Dao接口步骤5:创建Service接口和实现类步骤6:添加jdbc.properties文件步骤7:添加Mybatis核心配置文件步骤8:编写应用程序步骤9:运行程序 1.…