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条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- MySQL8.0.19开启GTID主从同步CentOS8
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装