Java图形化:布局方式
布局方式
-
FlowLayout
:流布局 -
BorderLayout
:边框布局 -
GridLayout
:网格布局
FlowLayout(流布局)
像Word打字,组件从左向右排列,一列排满后自动换下一行。组件默认居中对齐,可以设置左/右对齐。
流布局会维持组件的原始大小。
流布局是JPanel(面板)的默认布局。
容器可以使用setLayout()
方法改变布局。
示例代码:
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class TestLowLayout {
public static void main(String[] args) {
JFrame jf = new JFrame("流布局Demo");
FlowLayout fl = new FlowLayout();
jf.setLayout(fl);
JButton jb1 = new JButton("按钮1");
JButton jb2 = new JButton("按钮2");
jf.add(jb1);
jf.add(jb2);
jf.setSize(600, 300);
jf.setLocation(300, 200);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}
}
图示:
BorderLayout(边框布局)
边框布局把整个窗口分成了5个部分:
- 上北
- 下南
- 左西
- 右东
- 中
其中,北和南是整行,但是中、西、东都不是整列。一般只会出现2个或3个部分。组件放入时需要指定放在哪个区域,默认在中部。每个部分只能存放一个组件,如果存放多个就会覆盖前面的。如果想存放多个必须借助面板(Panel)。组件在边框布局中不保持原始大小,会充满整个区域,JFrame的默认布局就是边框布局。如果某个部分不出现,这个区域会被出现的部分挤占。
示例代码:
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class TestBorderLayout {
public static void main(String[] args) {
JFrame jf = new JFrame("BorderLayout窗口");
JButton jb = new JButton("中");
JButton jb1 = new JButton("北");
JButton jb2 = new JButton("南");
JButton jb3 = new JButton("西");
JButton jb4 = new JButton("东");
jf.add(jb);
jf.add(jb1,BorderLayout.NORTH);
jf.add(jb2,BorderLayout.SOUTH);
jf.add(jb3,BorderLayout.WEST);
jf.add(jb4,BorderLayout.EAST);
jf.setSize(600, 300);
jf.setLocation(600, 600);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}
}
图示:
GridLayout(网格布局)
把窗口分成几行几列的表格方式,构造时需要指定行数和列数。组件在网状布局中不保持原始大小,会充满整个区域。组件在网状布局中,一个格子只存放一个组件,自动向后走。
示例代码:
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class TestGridLayout {
public static void main(String[] args) {
JFrame jf = new JFrame("网格布局Test");
GridLayout gl = new GridLayout(5,4);
jf.setLayout(gl);
for (int i=0; i < 20; i++) {
JButton jb = new JButton("按钮 "+i);
jf.add(jb);
}
// 自动调整大小
jf.pack();
jf.setLocation(300, 200);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}
}
图示:
应用1:计算器
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ComputerTest {
public static void main(String[] args) {
JFrame jf = new JFrame("计算器");
JTextField jtf = new JTextField("0",20);
jf.add(jtf,BorderLayout.NORTH);
String[] lab = {"CE","C","+/-","BackS","7","8","9","+","4","5","6","-","1","2","3","*","0",".","=","/"};
JPanel jp = new JPanel();
GridLayout gl = new GridLayout(5,4);
jp.setLayout(gl);
for (int i=0; i<lab.length; i++) {
JButton jb = new JButton(lab[i]);
jp.add(jb);
}
jf.add(jp);
// 自动调节窗口大小
jf.pack();
// 禁止改变窗口大小
jf.setResizable(false);
jf.setLocation(300, 200);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}
}
图示:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Java开发物业管理系统:数据库表单设计
按照功能分为: 用户表 费用表 投诉建议表 第一步创建数据库: CREATE DATABASE yellowstar; 用户表 创建用户表 表名:yw_users CREATE TABLE IF NOT EXISTS yw_users ( uid INT UNSIGNED NOT NULL AUTO_INCREMENT KEY COMMENT 'UID', username VARCHAR(20) NOT NULL UNIQUE comment '用户名', password CHAR(32) NOT NULL COMMENT '密码:md5加密', user_type TINYINT UNSIGNED NOT NULL COMMENT '用户类型', create_time DATE NOT NULL COMMENT '创建时间' ); type字段说明: 1:超级管理员 2:物业 3:业主 插入测试数据 INSERT INTO yw_users (username,password,user_type,create_time) VALUES ('user1',123456,1,20...
-
下一篇
JDBC学习:事务
什么是事务 数据库中一些操作的集合是一个独立的单元,事务就是构成单一逻辑工作单位的集合。 为什么需要事务 事务是为解决数据安全操作提出的,事务控制实际上就是控制数据的安全访问。比如:银行转帐业务,账户A给账户B转帐100元,需要账户A余额减100元,账户B余额加100元,两个需要同时发生。完成这种操作需要保证要么全部成功,要么全部失败。 什么是回滚 未能成功完成的事务成为中止事务,对中止事务造成的变更需要进行撤销处理,称为事务回滚。 事务的特性(ACID 原则) 原子性(atomicity):对事务中的全部操作是不可分割的,要么全部完成,要么都不执行。 一致性(consistency):事务执行之前和执行之后,数据库都必须处于一致性状态。 隔离性(isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。 持久性(durability):对于任意已提交的事务,系统必须保证该对数据库的改变不丢失,即使数据库出现故障。 Java JDBC 事务机制比如有个业务:当我们修改一个信息后再去查询这个信息。这是一个简单的业务,实现起来也非常容易,但是当这个业务放...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- MySQL数据库在高并发下的优化方案
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2配置默认Tomcat设置,开启更多高级功能