坚持学习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布局学习(新)的更多相关文章

  1. java布局学习 (一)

    Java 程序通过jvm可以很好的移植到其他平台上,但是java 生成的图形界面样式,在不使用布局的情况下,往往需要重新设定大小,才能在新的平台上调整到最佳样式.这是由于组件的最佳大小 往往是与平台相 ...

  2. Android&Java的学习新的等

    学习资料 很久没写博客了.适逢这次Srtp项目学弟学妹们要学习Java与Android,我就总结一些学习的教材.方法,分享写材料与心得.纯个人观点,如有不周之处欢迎指出,大家共同探讨提高. *** 教 ...

  3. java布局学习 (二)

    前文中介绍了FlowLayout和BorderLayout 本文我们将会继续介绍java中的布局方式 (3)GridLayout 网格布局 这种布局会将整个容器划分成M行*N列的网格. 如下图:    ...

  4. java布局学习 (三)

    前文已经讲了常用的4个布局了,今天再介绍最后的三个布局: 5.CardLayout 6.BoxLayout 7.空白布局null (五)CardLayout   纸牌布局 首先这种布局不是二维布局,而 ...

  5. Java基础学习总结(33)——Java8 十大新特性详解

    Java8 十大新特性详解 本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API ...

  6. Java 日志学习

    Java 日志学习,主要学习log4j,(为了查找方便,直接拷贝别人文章:原文:http://www.cnblogs.com/xt0810/p/3659045.html) [结构] java日志对调试 ...

  7. JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API

    森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397  文章- 0  评论- 78  JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...

  8. [转帖]java基础学习总结——多态(动态绑定)

    https://www.cnblogs.com/xdp-gacl/p/3644035.html 多态的概念 java基础学习总结——多态(动态绑定) 一.面向对象最核心的机制——动态绑定,也叫多态

  9. CSS3与页面布局学习总结(八)——浏览器兼容与前端性能优化

    一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...

随机推荐

  1. Stm32-uclinux启动后的调试

    Stm32-uclinux启动后的调试 1.  修改__pfn_to_page使得能够启动 根据STM32F103 ucLinux开发之三(内核启动后不正常)的描述,内核无法启动是选择了平板内存模式后 ...

  2. (oralce)pga_aggregate_target与workarea_size_policy相互关系验证

    pga_aggregate_target与workarea_size_policy相互关系验证 先放上结论: 1. 当pga_aggregate_target设置为非0, 手工设置(workarea ...

  3. 使用java发送QQ邮件的总结

    最近帮朋友做个网站,实现用邮箱订阅功能,所以现在把这个发送邮件的功能放在这里,算是这两天工作的总结吧! 首先,想要实现订阅功能,要把邮箱保存,但是这个做的是个小网站,前后台交互的太少了,所以我就直接保 ...

  4. vue指令:v-model绑定表单控件;v-model与v-bind结合使用

    一.v-model绑定表单控件 v-model 双向数据绑定:一般用于表单元素,会忽略表单元素的value.checked.selected的初始值,且将Vue实例的数据作为数据来源. 1. 单行文本 ...

  5. 单片机、CPU、指令集和操作系统的关系

    郑重声明:转载自http://blog.csdn.net/zhongjin616/article/details/18765301 1> 首先讨论各种单片机与操作系统的关系 说到单片机,大家第一 ...

  6. 使用MATLAB工具deploytool打包不成功的解决办法

    下面解决方法是来自百度贴吧一抹伊静的解决办法,很好用,非常感谢,现记录下来以便后续查看: 这个问题是2014a 需要破解:下载一个破解文件,原因是matlab未完全破解,2014a的破解办法:http ...

  7. json keyname map

    var obj = { fname:'zhao', lname:'yao', parents:{ father:'zhao' }, children:[ { dname:'zhaoyiyi' } ] ...

  8. 400 bad Request: JackSon将json串转成List<Object>,异常com.fasterxml.jackson.databind.JsonMappingException

    最近遇到的400, 以前总以为 400 就是参数不匹配造成的,直到今天遇到这个问题 控制台报错如下:  com.fasterxml.jackson.databind.JsonMappingExcept ...

  9. Codeforces 912 D. Fishes (贪心、bfs)

    题目链接:Fishes 题意: 有一个n×m的鱼塘,有一张r×r的渔网,现在往池塘里面放k条鱼(每个格子只能放一条鱼), 现在撒网的地方是随机的(必须在池塘内),问能捕的鱼的期望值最大是多少? 题解: ...

  10. CF终于上紫了。。。

    纪念一下...