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…

游戏开发面试题1

C#&#xff0c;泛型、反射&#xff1f; C# 泛型是指可以让开发者在声明和使用类和方法时指定类型参数的编程技术。它可以减少代码重复&#xff0c;使程序的可维护性更高&#xff0c;并且能够更好地管理内存。 反射是指.NET程序集中类、方法、属性和字段的可编程性。它允许在不知…

等保测评推动哈尔滨数字化转型中的安全保障

在数字经济的浪潮下&#xff0c;哈尔滨作为东北老工业基地的核心城市&#xff0c;正积极推动数字化转型&#xff0c;以创新技术驱动产业升级和经济发展。网络安全等级保护测评&#xff08;简称“等保测评”&#xff09;作为国家网络安全战略的重要组成部分&#xff0c;为哈尔滨…

泛型(generics)

目录 一、泛型概述 二、定义泛型类 三、定义泛型方法 四、List接口中的泛型是如何定义的 五、泛型通配符 六、 泛型通配符的上限和下限 七、可变参数 八、可变参数的使用 九、泛型擦除机制 一、泛型概述 Java泛型是JDK5中引入的一个新特性&#xff0c;提供了编译时类型…

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…

在Ubuntu 16.04上安装和配置Redis的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 Redis 是一个内存中的键值存储&#xff0c;以其灵活性、性能和广泛的语言支持而闻名。在本指南中&#xff0c;我们将演示如何在 U…

【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; 算法是解决特定问题…

Linux 定期自动修改密码,防止过期

背景 😂 Jenkins 中使用 ssh 密码登录,实现项目前端部署。 😂 ssh 账号(假设叫做 ft)每隔三个月就会过期,就会导致前端部署报错,提示“Your password is expired” 😂 每次修改密码,需要申请权限,审批,耗时较长。=》希望自动修改密码,防止过期 分析 1、模拟生…

表格布局的概念与属性

表格布局的概念与属性 表格布局&#xff08;TableLayout&#xff09;是以行、列的形式来管理控件的&#xff0c;类似与表格。如图所示&#xff0c;是一个表格布局。TableLayout继承自LinearLayout&#xff0c;支持LinearLayout所支持的全部属性&#xff0c;默认为垂直方向的Li…

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

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

React-Native中关于图片问题知识总结

系列文章目录 React-Native环境搭建&#xff08;IOS&#xff09;React-Native项目 — 关于IOS知识储备React-Native项目工程搭建&#xff08;开发模板搭建&#xff09;React-Native项目矢量图标库&#xff08;react-native-vector-icons&#xff09;React-Native项目 — 自定义…

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 来解决…