Java Swing 5种布局管理器基本示例

在Java Swing中,常用的布局管理器有BorderLayout、FlowLayout、GridLayout、BoxLayout和GridBagLayout。最灵活的是GridBagLayout。

基本使用如下,

borderlayout,

import javax.swing.*;
import java.awt.*;public class borderlay
{public static void main(String[] agrs){JFrame frame = new JFrame("BorderLayout 示例");frame.setLayout(new BorderLayout());frame.add(new JButton("East"), BorderLayout.EAST);frame.add(new JButton("West"), BorderLayout.WEST);frame.add(new JButton("South"), BorderLayout.SOUTH);frame.add(new JButton("North"), BorderLayout.NORTH);frame.add(new JButton("Center"), BorderLayout.CENTER);frame.setSize(300, 300);frame.setVisible(true);}
}

 

flowlayout,

import javax.swing.*;
import java.awt.*;public class flowlay
{public static void main(String[] agrs){JFrame frame = new JFrame("FlowLayout 示例");frame.setLayout(new FlowLayout());for (int i = 1; i <= 5; i++) {frame.add(new JButton("Button " + i));}frame.setSize(300, 300);frame.setVisible(true);}
}

 

gridlayout,

import javax.swing.*;
import java.awt.*;public class gridlay
{public static void main(String[] agrs){JFrame frame = new JFrame("GridLayout 示例");frame.setLayout(new GridLayout(2, 3)); // 2 rows, 3 columnsfor (int i = 1; i <= 6; i++) {frame.add(new JButton("Button " + i));}frame.setSize(300, 300);frame.setVisible(true);}
}

 

 boxlayout,

import javax.swing.*;
import java.awt.*;public class boxlay
{public static void main(String[] agrs){JFrame frame = new JFrame("BoxLayout 示例");JPanel panel = new JPanel();panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));for (int i = 1; i <= 5; i++) {panel.add(new JButton("按钮" + i));}frame.getContentPane().add(panel);frame.setSize(100, 300);frame.setVisible(true);}
}

 

gridbaglay,

import javax.swing.*;
import java.awt.*;public class mygridbag {public static void main(String[] args) {JFrame jf = new JFrame("测试窗口");jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);GridBagLayout gridBag = new GridBagLayout();    // 布局管理器GridBagConstraints c = null;                    // 约束JPanel panel = new JPanel(gridBag);JButton btn01 = new JButton("按钮111111222");JButton btn02 = new JButton("按钮222222222");JButton btn03 = new JButton("按钮3");JButton btn04 = new JButton("单击我");c = new GridBagConstraints();gridBag.addLayoutComponent(btn01, c); // 内部使用的仅是 c 的副本c = new GridBagConstraints();gridBag.addLayoutComponent(btn02, c);c = new GridBagConstraints();c.gridwidth = GridBagConstraints.REMAINDER;c.fill = GridBagConstraints.BOTH;gridBag.addLayoutComponent(btn03, c);c = new GridBagConstraints();c.gridwidth = GridBagConstraints.REMAINDER;c.fill = GridBagConstraints.BOTH;gridBag.addLayoutComponent(btn04, c);panel.add(btn01);panel.add(btn02);panel.add(btn03);panel.add(btn04);jf.setContentPane(panel);jf.pack();jf.setLocationRelativeTo(null);jf.setVisible(true);}
}

 

看一下GridBagLayout是怎么用的;
先要new一个GridBagLayout的对象gb;
然后定义一个GridBagConstraints的对象c;
把gb关联到panel;
new一些控件;
    new出c;
    gb调用addLayoutComponent方法,第一个参数是控件,第二个参数是c;
    如此一直添加控件;

new了c以后可以默认;也可以再设置c的属性,使控件放到不同位置;

c.gridwidth = GridBagConstraints.REMAINDER;
    这样添加的控件将占据一行的剩余;

c.fill = GridBagConstraints.BOTH;
    控件填充显示区域;

上面加了4个按钮,前2个按默认放置,第三个放到此行的剩余空间;
然后第4个会转到新行;
此行只有一个控件,它会占据整行;

GridBagConstraints还有其他属性设置,有时间再看;

 

 

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

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

相关文章

yum install epel-release 遇到的问题

问题&#xff1a; 安装epel的时候,执行 yum install -y epel-release 报错“Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx86_64&repoos&infrastock error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.…

读人工智能全传06逻辑编程

1. 现代逻辑 1.1. 到了20世纪初&#xff0c;现代逻辑的基本框架已经大致建立起来&#xff0c;当时确立的逻辑运算系统&#xff0c;直至如今仍然能够支撑数学家几乎所有的逻辑推理工作 1.1.1. 这个系统被称为一阶逻辑&#xff0c;一阶逻辑是数学和推理的通用语言 1.1.2. 这个…

知识的向量表示

1、one-hot表示&#xff0c;空间太大 2、bag词袋模型&#xff0c;无法表示词的语义 3、词的语义由什么决定&#xff1f;词由他的上下文决定&#xff1f;分布式语义 4、CBow&#xff0c;通过前面几个词和后面几个词&#xff0c;预测中间几个词 5、skip-gram&#xff0c;通过…

Matlab协方差矩阵分解法生成随机场

Matlab协方差矩阵分解法生成随机场 相关系数矩阵 % function outcohesion(x,y,mu,theta) % end % xyload(F:\Research-OUC\基于机器许学习模型的海底斜坡可靠度研究\基于comsol的斜坡稳定性分析\comsol网格操作\grid_operate-matlab.mphtxt); % xxy(:,1); % yxy(:,2); Xlinspac…

Adobe Premiere Pro 2024 v24.5 (macOS, Windows) - 专业视频编辑软件

Adobe Premiere Pro 2024 v24.5 (macOS, Windows) - 专业视频编辑软件 Acrobat、After Effects、Animate、Audition、Bridge、Character Animator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、Lightroom Classic、Media Encoder、Photoshop、Premiere Pro、Adob…

【Selenium配置】WebDriver安装浏览器驱动(ChromeEdge)

【Selenium配置】WebDriver安装浏览器驱动&#xff08;Chrome&Edge&#xff09; 文章目录 【Selenium配置】WebDriver安装浏览器驱动&#xff08;Chrome&Edge&#xff09;Chrome确认Chrome版本下载对应driver把解压后的chromedriver文件放在chrome安装目录下&#xff0…

算法简介:什么是算法?——定义、历史与应用详解

引言 在现代计算机科学中&#xff0c;算法是一个核心概念。无论是编程还是数据分析&#xff0c;算法都扮演着至关重要的角色。在这篇博客中&#xff0c;我们将深入探讨算法的定义、历史背景以及它在计算机科学中的地位和实际应用。 什么是算法&#xff1f; 算法是解决特定问题…

在线制作网页PHP源码+IAPPv3源码

好久以前刚学PHP的时候搞的&#xff0c;现在翻出来并修复了一下就分享出来了&#xff0c;希望可以给初学者一点借鉴学习例子&#xff0c;虽然不是很好哈&#xff0c;但拿来耍耍应该还算可以吧。 使用教程 环境是PHP就行&#xff0c;直接把源码上传到服务器&#xff08;虚拟主…

Transformer-LSTM预测 | Matlab实现Transformer-LSTM多变量时间序列预测

Transformer-LSTM预测 | Matlab实现Transformer-LSTM多变量时间序列预测 目录 Transformer-LSTM预测 | Matlab实现Transformer-LSTM多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现Transformer-LSTM多变量时间序列预测&#xff0c;Transf…

JavaWeb开发基础7个Web术语解析

7个Web术语 Website: static vs dynamic HTTP HTTP Requests GET vs POST Servlet Container Server: Web vs Application Content Type Website: static vs dynamic 网站内容包括文本、图片、音频、视频&#xff0c;通过URL来访问。网站分为静态网站和动态网站。 静态网…

【计算机组成原理实验】——实验 MIPS 指令系统和 MIPS 体系结构

实验 MIPS 指令系统和 MIPS 体系结构 一、实验目的 了解和熟悉指令级模拟器。 熟练掌握 MIPSsim 模拟器的操作和使用方法。 熟悉 MIPS 指令系统及其特点&#xff0c;加深对 MIPS 指令操作语义的理解。 熟悉 MIPS 体系结构。 二、实验平台 实验平台采用指令级和流水线操作…

通用的职位招聘小程序ui模板

蓝色简单的校园招聘&#xff0c;行业招聘&#xff0c;职位招聘手机小程序页面模板。包含&#xff1a;职位列表、职位详情、基本信息填写、登录、个人主页、消息页面等功能 通用的职位招聘小程序ui模板

洛谷 P3613 学习用map代替大大大数组的好题

题目链接&#xff1a;P3613 【深基15.例2】寄包柜 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目截图&#xff1a; 题意分析&#xff1a; 非常简单的存入和取出操作 唯一的 “难点” 在于 数组开不到 a[100007][100007]&#xff0c;会暴内存 非常巧妙的引入 map 来解决…

详解Java垃圾回收(GC)机制

一、为什么需要垃圾回收 如果不进行垃圾回收&#xff0c;内存迟早都会被消耗空&#xff0c;因为我们在不断的分配内存空间而不进行回收。除非内存无限大&#xff0c;我们可以任性的分配而不回收&#xff0c;但是事实并非如此。所以&#xff0c;垃圾回收是必须的。 二、哪些内…

【Java】了解异常

初始异常 我们平时应该已经接触过一些 “异常” 了&#xff0c;这里列举一些例子。 算术异常&#xff1a; 数组下标越界异常&#xff1a; 访问空指针异常&#xff1a; 所谓异常指的就是程序在 运行时 出现错误时通知调用者的一种机制。 异常的基本用法 捕获异常 try{ 有可能…

Open3D 删除点云中重叠的点(方法一)

目录 一、概述 二、代码实现 三、实现效果 3.1原始点云 3.2处理后的点云 3.3计算结果 一、概述 在点云处理中&#xff0c;重叠点&#xff08;即重复点&#xff09;可能会对数据分析和处理的结果产生负面影响。因此&#xff0c;删除重叠点是点云预处理中常见且重要的步骤。…

缺失行处理(R和python)

R(complete.cases) rm(listls()) # 创建一个包含缺失值的数据框 # df <- data.frame( # x c(1, 2, NA, 4), # y c(NA, 2, 3, 4), # z c(1, NA, 3, 3) # ) # # # 使用complete.cases函数筛选包含缺失值的数据行 # missing_rows <- !complete.cases(df) # # # …

Java的垃圾回收机制解说

Java 内存运行时区域中的程序计数器、虚拟机栈、本地方法栈随线程而生灭&#xff1b;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的&#xff08;尽管在运行期会由 JIT 编译器进行一些优化&…

使用vue3-treeselect问题

1.当vue3-treeselect是单选时&#xff0c;使用watch监听绑定value&#xff0c;无法监听到值清空 对照后将:value改为v-model&#xff0c;如图 2.使用vue3-treeselect全部清空按钮如何置空select的值&#xff0c;使用watch监听 多选&#xff1a;pageInfo.officeName(val) {// …

【手写数据库内核组件】0201 哈希表hashtable的实战演练,多种非加密算法,hash桶的冲突处理,查找插入删除操作的代码实现

hash表原理与实战 ​专栏内容&#xff1a; postgresql使用入门基础手写数据库toadb并发编程 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 文章目录 hash表…