Java布局管理器之插件(一)---JPanel

2023-11-11

在图形用户界面编程中, 如果只是普通的组件布局, 我们用前面讲的三种布局管理器就可以解决,

但在比较复杂的布局要求时,就需要使用布局管理器的组合使用。

面板组件 (JPanel)
JPanel :面板组件,非顶层容器,一个界面只可以有一个 JFrame 窗体组件,但可以有多个JPanel 面板组件 ,

而 JPanel 上也可以使用 FlowLayout 、 BorderLayout 、 GirdLayout 等各
种布局管理器,这样可以组合使用达到较为复杂的布局效果。

 

下面我们举个例子:

/**
 * JPanel 测试
 * 多种布局管理器的使用
 */
package com.test1;

import java.awt.*;
import javax.swing.*;

public class Demo8_5 extends JFrame{

	//定义小控件
	JButton jb1 = null;
	JButton jb2 = null;
	JButton jb3 = null;
	JButton jb4 = null;
	JButton jb5 = null;
	JButton jb6 = null;
	//定义面板
	JPanel jp1 = null;
	JPanel jp2 = null;
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Demo8_5 demo8_5 = new Demo8_5(300, 200);

	}
	
	public Demo8_5(int x_dispSize, int y_dispSize)
	{
		//创建小控件
		jb1 = new JButton("香蕉");
		jb2 = new JButton("橘子");
		jb3 = new JButton("橙子");
		jb4 = new JButton("榴莲");
		jb5 = new JButton("苹果");
		jb6 = new JButton("葡萄");
		
		//创建JPanel
		jp1 = new JPanel();
		jp2 = new JPanel();
		
		//添加JButton到JPanel,JPanel默认是流式布局
		jp1.add(jb1);
		jp1.add(jb2);
		jp1.add(jb3);
		
		jp2.add(jb4);
		jp2.add(jb5);
		
		//把JPanel添加到主窗体
		this.add(jp1, BorderLayout.NORTH);
		this.add(jb6, BorderLayout.CENTER);
		this.add(jp2, BorderLayout.SOUTH);
		
		//设置窗体标题
		this.setTitle("JPanel测试");
		
		//设置窗体大小
		this.setSize(x_dispSize, y_dispSize);
		
		//设置窗体显示位置
		this.setLocation(500, 500);
		
		//设置关闭窗体时,关闭JVM
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		//设置窗体不可更改大小
		this.setResizable(false);
		
		//设置窗体可见
		this.setVisible(true);
	}

}

显示出来的效果如下:

 

注意事项
1、 JPanel 是 JComponent 的子类;
2、属于容器类组件,可以加入别的组件;
3、默认布局管理器是流式布局 (FlowLayout)
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java布局管理器之插件(一)---JPanel 的相关文章

随机推荐

  • Element-Ui

    安装环境搭建 Element Ul是饿了么前端团队推出的一款基于Vue js 2 0 的桌面端UI框架 一套为开发者 设计师和产品经理准备的基于 Vue 2 0 的桌面端组件库 手机端有对应框架是Mint UI 中文文档 http elem
  • 蓝桥杯 奇数倍数

    蓝桥杯 奇数倍数 题目 请你找到最小的整数 X 同时满足 1 X 是 2019 的整倍数 2 X 的每一位数字都是奇数 思路 1 先找2019倍数 2 判断它的每一位是否是奇数 Java代码 public class 奇数倍数 public
  • 2022跨年烟花代码(一)Canvas绘制3D烟花动画特效

    Canvas绘制3D烟花动画特效 html代码
  • Knife4j+gateway动态路由聚合微服务API

    概述 knife4j的聚合API 其实官网有现成的例子 但包括其他能搜索到的资料都是基于静态网关的配置 我们现有的都是结合nacos实现动态网关配置 基于此留下这篇完整的教程文档 说明 本文假定你有一定的springcloud等相关知识 如
  • 树莓派安装配置syncthing

    下载 从这里下载软件 下载后解压 把二进制文件放到 usr local bin 目录 在命令行输入syncthing version命令 能打印出版本即可 自动启动 Unit Description Syncthing Open Sourc
  • struts2验证框架的两种方式

    第一种 在action同目录下建立 action validation xml
  • 关于JavaScript的浅拷贝和深拷贝

    关于JavaScript的浅拷贝和深拷贝 在 JS 中有一些基本类型像是Number String Boolean 而对象就是像这样的东西 name Larry skill Node js 对象跟基本类型最大的不同就在于他们的传值方式 基本
  • logging的使用python3

    以时间命名输出日志 def init logging t str time strftime Y m d H M time localtime filename log s txt t logging basicConfig level l
  • 刷题 3.10

    目录 1 约瑟夫环 蓝桥231 2 排它平方数 蓝桥712 3 买不到的数目 蓝桥213 思维题 思路 因为有解 两个数一定互质 不能拼成的最大数是xy x y 4 回文日期 1 约瑟夫环 蓝桥231 题目描述 n 个人的编号是 1 n 如
  • handsontable使用及遇到的坑--公式计算(思路)

    公式 公式的计算可使用堆栈的思想将运算符后置 如 C1 A1 A2 5 B1可以变换成 A1 A2 5 B1 计算过程为 假设A1 1 A2 2 B1 3 C1 A1 A2 5 B1 A1 A2 5 B1 1 2 5 3 3 5 3 15
  • 腾讯三面(hr面)之轻松过关

    腾讯二面之细节大曝光中最后提到 22号晚上11 00先后分别收到邮件 短信与电话通知 腾讯邀请你于4月23号16点到珞珈山国际酒店3楼2号会议室参加软件开发类面试 请携带简历提前5分钟到达 腾讯科技 23号上午 同样在旅馆查询资料 虽然很多
  • 【华为提前批】笔试 测评 面试 全流程(结构与材料工程师)

    目录 提前批流程 笔试 性格测试 专业面试1 2 主管面 终面 最后 祝各位旗开得胜 提前批流程 一般综合测评会在笔试之后发放 可选择之后再做 流程里面是安排在两轮技术面之后的 笔试 7 12 性格测试 7 14 专业面试1 7 24 专业
  • flutter 路由插件fluro配置及其使用

    flutter 路由插件fluro配置及其使用 pubspec yaml 引入插件 dependencies flutter sdk flutter fluro 1 6 3 1 首先创建一个router handler dart文件 定义路
  • 数据挖掘与机器学习——数据挖掘概述

    挖掘是从大量的 不完全的 有噪声的 模糊的 随机的应用数据中 提取潜在且有用的信息的过程 分析分析处理 On Line Analytical Processing OLAP 数据分析过程 确定知识发现的目标 确定知识发现的目的 数据采集 数
  • Segmentation简记-Joint shape learning and segmentation for medical images

    Segmentation简记 Joint shape learning and segmentation for medical images using a minimalistic deep network 创新点 1 In this
  • react中dispatch_在react中class和function组件调用dispatch的方式

    copy党的疑问 function Checklist dispatch list dataSource loading total page current function editHandler id values dispatch
  • 使用 System.Net.Mail.MailMessage 发送电子邮件

    从 NET 2 0 开始 引入了一个新的类 System Net Mail MailMessage 该类用来取代 NET 1 1 时代的 System Web Mail MailMessage 类 System Net Mail MailM
  • flask sqlalchemy基本操作(查询)

    查询语法 查询一般有两种写法 db session query 和 lt 模型类 gt query lt 过滤方法 gt db session query 查询TestCase 模型类中id 137 的数据 db session query
  • Springboot项目 RestTemplate+httpclient实现文件的上传和下载

    1 pom xml
  • Java布局管理器之插件(一)---JPanel

    在图形用户界面编程中 如果只是普通的组件布局 我们用前面讲的三种布局管理器就可以解决 但在比较复杂的布局要求时 就需要使用布局管理器的组合使用 面板组件 JPanel JPanel 面板组件 非顶层容器 一个界面只可以有一个 JFrame