Container容器

news2024/9/21 15:55:35

Container继承体系

  • Winow是可以独立存在的顶级窗口,默认使用BorderLayout管理其内部组件布局;
  • Panel可以容纳其他组件,但不能独立存在,它必须内嵌其他容器中使用,默认使用FlowLayout管理其内部组件布局;
  • ScrollPane 是 一个带滚动条的容器,它也不能独立存在,默认使用 BorderLayout 管理其内部组件布局;

常见API

Component作为基类,提供了如下常用的方法来设置组件的大小、位置、可见性等。

方法签名

方法功能

setLocation(int x, int y)

设置组件的位置。

setSize(int width, int height)

设置组件的大小。

setBounds(int x, int y, int width, int height)

同时设置组件的位置、大小。

setVisible(Boolean b):

设置该组件的可见性。

Container作为容器根类,提供了如下方法来访问容器中的组件

方法签名

方法功能

Component add(Component comp)

向容器中添加其他组件 (该组件既可以是普通组件,也可以 是容器) , 并返回被添加的组件 。

Component getComponentAt(int x, int y):

返回指定点的组件 。

int getComponentCount():

返回该容器内组件的数量 。

Component[] getComponents():

返回该容器内的所有组件 。

容器演示

Window

import java.awt.*;

public class FrameDemo {

    public static void main(String[] args) {
        //1.创建窗口对象
        Frame frame = new Frame("这是第一个窗口容器");

        //设置窗口的位置和大小

        frame.setBounds(100,100,500,300);

        //设置窗口可见
        frame.setVisible(true);
    }
}

Panel

public class PanelDemo {
    public static void main(String[] args) {
        //1.创建Frame容器对象
        Frame frame = new Frame("这里在测试Panel");
        //2.创建Panel容器对象
        Panel panel = new Panel();

        //3.往Panel容器中添加组件
        panel.add(new TextField("这是一个测试文本"));
        panel.add(new Button("这是一个测试按钮"));

        //4.把Panel添加到Frame中
        frame.add(panel);

        //5.设置Frame的位置和大小
        frame.setBounds(30,30,500,300);

        //6.设置Frame可见
        frame.setVisible(true);
    }
}

由于IDEA默认使用utf-8进行编码,但是当前我们执行代码是是在windows系统上,而windows操作系统的默认编码是gbk,所以会乱码,如果出现了乱码,那么只需要在运行当前代码前,设置一个jvm参数 -Dfile.encoding=gbk即可。

ScrollPane

import java.awt.*;

public class ScrollPaneDemo {

    public static void main(String[] args) {
        //1.创建Frame窗口对象
        Frame frame = new Frame("这里测试ScrollPane");

        //2.创建ScrollPane对象,并且指定默认有滚动条
        ScrollPane scrollPane = new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);

        //3.往ScrollPane中添加组件
        scrollPane.add(new TextField("这是测试文本"));
        scrollPane.add(new Button("这是测试按钮"));

        //4.把ScrollPane添加到Frame中
        frame.add(scrollPane);

        //5.设置Frame的位置及大小
        frame.setBounds(30,30,500,300);

        //6.设置Frame可见
        frame.setVisible(true);

    }
}

程序明明向 ScrollPane 容器中添加了 一个文本框和一个按钮,但只能看到 一个按钮,却看不到文本框 ,这是为什么 呢?这是因为ScrollPane 使用 BorderLayout 布局管理器的缘故,而 BorderLayout 导致了该容器中只有一个组件被显示出来 。 下一节将向详细介绍布局管理器的知识 。

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

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

相关文章

WMS仓储管理系统如何加强印刷企业仓库管理

在当今的数字化时代,仓库管理系统的智能化和信息化已经成为企业运营效率的重要支柱。印刷企业WMS仓储管理系统,作为一种先进的管理工具,正在被越来越多的印刷企业所采用,以加强他们的仓库管理工作。 一、WMS仓储管理系统概述 WMS…

Always On 数据库无法自动同步的问题

问题: 在给客户的SQL Server 2019 配置好Always On 之后,不久就出现高可用组里的一个库无法正常同步。 第一次出现,以为是偶发性问题,直接右键点击恢复数据同步,没一会就同步好了;过了一个月问题又出现了…

git 远程多分支,本地如何切换分支

1、git clone url 先clone 项目,git branch -a 查看所有分支,发现有多个远程分支 2、假如想在 remote 分支工作,但是本地还没有 remote 分支,可以先输入命令: git checkout ,不要按回车键,按…

民安智库(专业市场调查公司)教师节:国内老师教学压力大

2023年9月10日是我国第39个教师节,今年教师节主题是“躬耕教坛,强国有我”。目前我国教师队伍规模世界第一,建成了世界最大规模的教育体系,《中国教师教育发展报告2022》指出我国教师教育仍然面临提高生源质量、提升教师教育效能、…

一键安装Mysql、Redis、Nginx脚本

目录 一键安装Mysql脚本 一键安装Redis脚本 一键安装Nginx脚本 目的是方便用户快速安装Mysql、Redis、Nginx这三个软件,其中有部分配置可以自行舍取,脚本经供参考,实际工作可按需求调整。 一键安装Mysql脚本 [rootlocalhost ~]# cat one…

哪种电容笔好用?apple pencil的平替笔

从Apple pencil的出现,许多小伙伴无论是工作上还是学习上,都需要一款电容笔。而由于现在市面上电容笔的多样化。许多新手小伙伴不知如何挑选一款适合自己的电容笔。那么今天我就给大家总结几款好用又平价的电容笔给大家参考一下! 一、使用电…

angular中多层嵌套结构的表单如何处理回显问题

最近在处理angular表单时,有一个4层结构的表单。而且很多元素时动态生成,如下: this.validateFormthis.fb.group({storeId: ["test12"],storeNameKey:[],config:this.fb.group({ tableSize:this.fb.group({toggle:[false],groupSiz…

python 定时任务 传参 及 之前创建 Python包遇到的问题

一 Python 调度器传参 1.1 按位置传参 注意调 args 设置好之后,使用 scheduler.start() 启动调度器。 # 设置调度器 scheduler BlockingScheduler() # 采用阻塞的方式 # 分拆上传数据模块,上传算法使用的数据 scheduler.add_job(funcup_load_da…

这些日常运维实用技巧,忍不住拍案叫绝~

需求 在运维工作中随着我们积累的经验不断增多,不知你是否遇到过以下几个场景: Linux 如何快速删除大量文件? Vsphere 如何在不重启的情况下识别新添加的iscsi硬盘? Linux 中 rm 命令如何做到防误删? 不同 Linux 服…

「四维轻云」v1.4.1版本更新内容

「四维轻云」v1.4.1版本更新主要包含以下内容: 1、倾斜模型三种加载方式 2、矢量数据上传(SHP) 3、单体化(绘制及SHP生成) 一、倾斜模型的三种加载方式 在倾斜模型的编辑窗中,可设置数据的加载方式&am…

简单斜率优化

凸壳取点 现在平面上有 n n n个点: ( x i , y i ) (x_i,y_i) (xi​,yi​) 现有一次函数: y k x b ykxb ykxb。 要求一次函数必须至少经过平面当中的一个点。则一次函数可以写作: y i k ⋅ x i b y_ik\cdot x_ib yi​k⋅xi​b 如果斜率…

php版 短信跳转微信小程序

实现这功能首先&#xff0c;小程序端添加业务域名 php代码 <?php declare (strict_types1);namespace app\controller\Admin;use app\model\Set; use app\Request;class Admin_Url_Scheme {public function getScheme(Request $request) {$appid 小程序appid;$secret 小…

问道管理:股票空头是什么意思?

在炒股的时分&#xff0c;咱们经常听到股票空头。那么股票空头到底是什么意思呢&#xff1f;股票空头是相对于股票多头而言的一个术语。股票多头指的是经买入股票并盈利的股民&#xff0c;而股票空头则指的是经过售卖股票猎取赢利的股民。 在一段时间内&#xff0c;股票的涨跌…

如何利用 Selenium 对已打开的浏览器进行爬虫

大家好&#xff01; 在对某些网站进行爬虫时&#xff0c;如果该网站做了限制&#xff0c;必须完成登录才能展示数据&#xff0c;而且只能通过短信验证码才能登录 这时候&#xff0c;我们可以通过一个已经开启的浏览器完成登录&#xff0c;然后利用程序继续操作这个浏览器&…

使用GPA和夜神模拟器实现K帧

之前使用过GPA配合夜神模拟器实现K帧&#xff0c;来查看实际的渲染情况&#xff0c;后来一段时间没有使用&#xff0c;就忘记了具体步骤&#xff0c;这次边试边实现一下相关的具体步骤。 首先去英特尔官网下载工具&#xff1a;https://www.intel.com/content/www/us/en/develo…

看完这位小哥的GitHub,我沉默了

就在昨天&#xff0c;一个名为win12的开源项目一度冲上了GitHub的Trending热榜。 而且最近项目的Star量也在飙升&#xff0c;目前已经获得了2.2k的Star标星。 出于好奇&#xff0c;点进去看了看。好家伙&#xff0c;项目README里写道这是一个14岁的初中生所打造的开源项目。 即…

Mybatis学习笔记1 Mybatis入门

差不多根据mybatis中文文档:创建第一个mybatismaven项目,将它跑起来 入门_MyBatis中文网 新建库 建表 创建项目 重启之后 配置下Maven与encoding 成习惯了 新建模块 注意:这个GroupId和ArtifactId version是之后,你用Maven install时候后存放的包路径和包名 目录结构:虽然换…

aws-msk-托管kafka集群的简单使用(VPC内部访问:无验证和SASL认证)

1.使用控制台创建即可 根据实例类型创建需要至少15分以上&#xff0c;可以提前创建好ec2实例和Secrets Manager,一会会使用到 2. 创建Secrets Manager &#xff08;使用无认证时请跳过&#xff09; 官方文档&#xff1a;https://docs.aws.amazon.com/zh_cn/msk/latest/deve…

Transformer(一)—— Attention Batch Normalization

Transformer详解 一、RNN循环神经网络二、seq2seq模型三、Attention&#xff08;注意力机制&#xff09;四、Transformer4.1 self attention4.2 self-attention的变形——Multi-head Self-attention4.3 Masked Attention4.4 Positional Encoding4.5 Batch Normalization4.6 Lay…

接口自动化之测试数据动态生成并替换

一、测试数据 1. 随机库random 查看内置random方法&#xff0c;该方法自行学习&#xff0c;不再介绍。 show 2. Faker库 pip install faker showHttps://github.com/joke2k/faker 3. 应用到项目中 3.1 思路 在用例数据中添加标志位&#xff0c;设计这个标志位为 {{特…