java布局学习(新)
坚持学习java一段时间,最近自己需要做一个小型的系统,所以需要自己将自己的AWT知识巩固一下。
一、4大布局管理器。
1.边界布局BorderLayout
是JFrame和JDialog的默认布局方法,可以看成地图的排列方式,一共四个方位:东西南北和地图一样,不同的是上北和下南都没有中间的位置占有的大,中部的占有最大。
举例:
package com.ly; import javax.swing.*;
import java.awt.*; public class demo1 extends JFrame{ JButton jb1,jb2,jb3,jb4,jb5;
public static void main(String[] args) {
// TODO Auto-generated method stub
demo1 d1=new demo1();
}
public demo1()
{
jb1=new JButton("中");
jb2=new JButton("北");
jb3=new JButton("东");
jb4=new JButton("南");
jb5=new JButton("西"); //添加各个组件
this.add(jb1,BorderLayout.CENTER);
this.add(jb2,BorderLayout.NORTH);
this.add(jb3,BorderLayout.EAST);
this.add(jb4,BorderLayout.SOUTH);
this.add(jb5,BorderLayout.WEST); //设置布局
this.setTitle("边界布局");
this.setSize(300,300);
this.setLocation(200,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true); }
}

2.流式布局FlowLayout
这样的布局会使部件想水流一样流动从左到右排列,直到遇到边界后才重新排列。在Panel中默认使用这种排列方式。
举例:
package com.ly;
import java.awt.FlowLayout;
import javax.swing.*;
public class Demo2 extends JFrame{
JButton jb1,jb2,jb3,jb4,jb5;
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo2 d2=new Demo2();
}
public Demo2()
{
jb1=new JButton("1");
jb2=new JButton("2");
jb3=new JButton("3");
jb4=new JButton("4");
jb5=new JButton("5");
this.add(jb1);
this.add(jb2);
this.add(jb3);
this.add(jb4);
this.add(jb5);
//设置布局
this.setLayout(new FlowLayout());
this.setTitle("流布局");
this.pack();
this.setLocation(200,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}

3.GridLayout布局管理器
这样的布局管理将容器分割成纵横线的网络。我个人认为这样的布局方式较上两种都好,因为更加灵活,写一些基本的布局都可以转换。
package com.ly;
import java.awt.GridBagLayout;
import java.awt.GridLayout; import javax.swing.*; public class Demo3 extends JFrame{ int size=9;
JButton []jbs=new JButton[size]; public static void main(String[] args) {
// TODO Auto-generated method stub Demo3 d3=new Demo3(); } public Demo3()
{
for(int i=0;i<size;i++)
{
jbs[i]=new JButton(String.valueOf(i));
} //设置网格布局
this.setLayout(new GridLayout(3,3)); for(int i=0;i<size;i++)
{
this.add(jbs[i]);
} this.setTitle("网格布局");
this.setSize(300,300);
this.setLocation(200,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}

4.CardLayout布局器
CardLayout布局器采用时间进行管理组件,可以看层是一个卡片盒,只有最上面的compent可见。
剩下的两种是我体会比较深的,特别是空布局,简直万能,不过就是要自己定位有些麻烦,大家有机会可以试试。
1.null布局
将Container 的布局管理器设置为null,setLayout(null)
再往容器添加时先调用setBounds()和setSize()设置组建大小和位置
2.BoxLayout布局管理器
我没用过这种管理器,不过这种管理器应该很强大,大家试试。
BoxLayout(Cotainer target,int axis) 而布局有axis横向排列和
纵向排列
如:f.setLayout(new BoxLayout(f,BoxLayout.y_AXIS));
BoxLayout通常和Box联合使用
二、AWT的常用组件
直接上程序吧,比较清晰。
//AWT基本组件
package com.ly.ll;
import java.awt.*;
import javax.swing.*; public class compoment { Frame f; //创建窗口
Button bt;
CheckboxGroup cbg; //复选框组
Checkbox male,female,married; //复选框
Choice colorChoice; //下拉选框
List colorList; //列表选择框
TextArea ta; //文本域(多行)
TextField name; //文本域(单行) public static void main(String []args)
{
compoment cp=new compoment();
} public compoment()
{
//创建组件
f=new Frame("测试界面");
bt=new Button("确认");
cbg=new CheckboxGroup();
male =new Checkbox("男",cbg,true);
female =new Checkbox("女",cbg,false);
married =new Checkbox("是否已婚?",false);
colorChoice=new Choice();
colorList=new List(3,true);
ta=new TextArea(5,20); //5行20 列
name=new TextField(50); //50列 //初始化组件
colorChoice.add("红");
colorChoice.add("黄");
colorChoice.add("蓝");
colorList.add("红");
colorList.add("黄");
colorList.add("蓝");
//panel装载文本按钮
Panel bottom=new Panel();
bottom.add(name);
bottom.add(bt);
f.add(bottom,BorderLayout.SOUTH); //Frame默认边界布局 Panel p2=new Panel();
p2.add(colorChoice);
p2.add(male);
p2.add(female);
p2.add(married); //创建垂直组件BOX
Box topList=Box.createVerticalBox();
topList.add(ta); //放入多航文本域
topList.add(p2); Box top=Box.createVerticalBox();
top.add(topList);
top.add(colorList);
f.add(top);
f.pack(); f.setVisible(true);
}
}
显示结果:

这样就对上面的知识点有了简单的总结和认识,但是要进行开发还是远远不够的
下面是java实战.转(url)
每日一小步,月过一大步~~加油
java布局学习(新)的更多相关文章
- java布局学习 (一)
Java 程序通过jvm可以很好的移植到其他平台上,但是java 生成的图形界面样式,在不使用布局的情况下,往往需要重新设定大小,才能在新的平台上调整到最佳样式.这是由于组件的最佳大小 往往是与平台相 ...
- Android&Java的学习新的等
学习资料 很久没写博客了.适逢这次Srtp项目学弟学妹们要学习Java与Android,我就总结一些学习的教材.方法,分享写材料与心得.纯个人观点,如有不周之处欢迎指出,大家共同探讨提高. *** 教 ...
- java布局学习 (二)
前文中介绍了FlowLayout和BorderLayout 本文我们将会继续介绍java中的布局方式 (3)GridLayout 网格布局 这种布局会将整个容器划分成M行*N列的网格. 如下图: ...
- java布局学习 (三)
前文已经讲了常用的4个布局了,今天再介绍最后的三个布局: 5.CardLayout 6.BoxLayout 7.空白布局null (五)CardLayout 纸牌布局 首先这种布局不是二维布局,而 ...
- Java基础学习总结(33)——Java8 十大新特性详解
Java8 十大新特性详解 本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API ...
- Java 日志学习
Java 日志学习,主要学习log4j,(为了查找方便,直接拷贝别人文章:原文:http://www.cnblogs.com/xt0810/p/3659045.html) [结构] java日志对调试 ...
- JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API
森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397 文章- 0 评论- 78 JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...
- [转帖]java基础学习总结——多态(动态绑定)
https://www.cnblogs.com/xdp-gacl/p/3644035.html 多态的概念 java基础学习总结——多态(动态绑定) 一.面向对象最核心的机制——动态绑定,也叫多态
- CSS3与页面布局学习总结(八)——浏览器兼容与前端性能优化
一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...
随机推荐
- Dom操作(标签--增、删、移动)
Dom操作 移动或者插入标签的方法 1.append()和appendTo():在现存元素的内部,从后面放入元素: 先声明一个变量用来保存新标签 var $span = $('这是一个span元素') ...
- 历年至今TVB剧集目录(持续更新...我已看过的推荐)
2019年度TVB剧集 <> 主演: <> 主演: 2018年度TVB剧集 <大帅哥> 主演:张卫健,蔡思贝,洪永城,曹永廉 <守护神之保险调查> 主演 ...
- TI DSP 6657 SRIO 简介
目录 TI DSP 6657 SRIO 简介 SRIO 协议介绍 RapidIO 基础 TI DSP 6657 SRIO 简介 SRIO 协议介绍 TI 的 KeyStone 系列设备中实现了 Rap ...
- 分子量 (Molar Mass,ACM/ICPC Seoul 2005,UVa1586)
习题 3-3 分子量 (Molar Mass,ACM/ICPC Seoul 2005,UVa1586) 给出一种物质的分子式(不带括号),求分子量.本题中的分子式只包含4种原子,分别为C,H,O,N, ...
- # 20155229 2016-2017-2 《Java程序设计》第七周学习总结
20155229 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 第十二章 lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装 ...
- Oracle中实现dblink的作法
基本环境: 机器1: 192.168.56.102 用作dblink的使用者(create database link 语句在此执行) 机器2: 192.168.56.103 用作dblink的源 ...
- JavaScript之字符串的常用操作函数
字符串的操作在js中非常繁琐,但也非常重要.在使用过程中,也会经常忘记,今天就对这个进行一下整理. String 对象 String 对象用于处理文本(字符串). new String(s); // ...
- 【HNOI2013】比赛
题面 题解 \(n \leq 9 \to\)爆搜 对每一场的结果进行搜索,最后进行\(\mathrm{check}\) 然后会发现没有什么分 搜索最重要的就是剪枝 接下来就列出一些剪枝 搜索时,强制每 ...
- Storm 第二章 Storm安装
1 strom集群规划 Nimbus:hadoop1 zookeeper:hadoop2,hadoop3,hadoop4 supervisor:hadoop5,hadoop6,hadoop7 安装文件 ...
- ruby安装卸载
1.用命令yum install ruby安装,是2.0以下的版本.不建议使用 2.2.2以上 下载地址:https://www.ruby-lang.org/en/news/2018/03/28/r ...