坚持学习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. 流程一直处于Running状态,应该怎么停止?

    流程一直处于Running状态,应该怎么停止? 概述 我们有遇到这种情况:可能由于某些原因,流程发起后一直处于Running状态,然后我们想Stop掉这些出问题的流程,这个时候你在Workspace里 ...

  2. Struts2 的ActionContext 详解

    转自:http://www.cnblogs.com/shaohz2014/p/3962779.html ActionContext是Action的上下文,Struts2自动在其中保存了一些在Actio ...

  3. python-greenlet模块(协程)

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 from greenlet import greenlet   def test1():     print(12)    ...

  4. block本质探寻八之循环引用

    说明:阅读本文,请参照之前的block文章加以理解: 一.循环引用的本质 //代码——ARC环境 void test1() { Person *per = [[Person alloc] init]; ...

  5. Cannot obtain block length for LocatedBlock故障分析和解决

    来源:CSDN 作者:Syn良子 原文:https://blog.csdn.net/cssdongl/article/details/77750495  一.问题背景 问题产生的原因可能是由于前几日H ...

  6. MepReduce-开启大数据计算之门

    Hadoop MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算.早期的MapReduce(MR)框架简单明了,JobTracker作为MR框架的集中处理点,随着分布式系统集群 ...

  7. C语言编译过程以及gcc编译参数

    1.1       C语言编译过程,gcc参数简介 1.1.1          C语言编译过程 一.gcc - o a a.c -o:指定文件输出名字 二.C语言编译的过程: 1.1.1       ...

  8. IDEA/Git 设置多个push远程仓库或者同时提交多个push仓库

    注:写在最上面的这个提交地址将会是唯一的pull地址 具体解决办法: 在隐藏文件.git 下有个config文件,打开,在最后一行添加以下信息 [remote "all"] url ...

  9. 微信小程序日记(一)

    一.基础知识(目录与配置) (1)标签 小程序的view相当于HTML的div标签一样,作占位 (2)每一个页面都需要在app.json里面注册,例如: { { "pages": ...

  10. ci框架学习整理

    -- -- 表的结构 `yi_article` -- CREATE TABLE IF NOT EXISTS `yi_article` ( `id` int(11) unsigned NOT NULL ...