博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 布局教程_java布局学习(新)
阅读量:4475 次
发布时间:2019-06-08

本文共 3991 字,大约阅读时间需要 13 分钟。

坚持学习java一段时间,最近自己需要做一个小型的系统,所以需要自己将自己的AWT知识巩固一下。

一、4大布局管理器。

1.边界布局BorderLayout

是JFrame和JDialog的默认布局方法,可以看成地图的排列方式,一共四个方位:东西南北和地图一样,不同的是上北和下南都没有中间的位置占有的大,中部的占有最大。

举例:

packagecom.ly;import javax.swing.*;import java.awt.*;public class demo1 extendsJFrame{

JButton jb1,jb2,jb3,jb4,jb5;public static voidmain(String[] args) {//TODO Auto-generated method stub

demo1 d1=newdemo1();

}publicdemo1()

{

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);

}

}

6b9a9d493457ff1efd7a4b9eebebef1a.png

2.流式布局FlowLayout

这样的布局会使部件想水流一样流动从左到右排列,直到遇到边界后才重新排列。在Panel中默认使用这种排列方式。

举例:

packagecom.ly;importjava.awt.FlowLayout;import javax.swing.*;public class Demo2 extendsJFrame{

JButton jb1,jb2,jb3,jb4,jb5;public static voidmain(String[] args) {//TODO Auto-generated method stub

Demo2 d2=newDemo2();

}publicDemo2()

{

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(newFlowLayout());this.setTitle("流布局");this.pack();this.setLocation(200,200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);

}

}

322091bc8c478279b452190cedd93369.png

3.GridLayout布局管理器

这样的布局管理将容器分割成纵横线的网络。我个人认为这样的布局方式较上两种都好,因为更加灵活,写一些基本的布局都可以转换。

packagecom.ly;importjava.awt.GridBagLayout;importjava.awt.GridLayout;import javax.swing.*;public class Demo3 extendsJFrame{int size=9;

JButton []jbs=newJButton[size];public static voidmain(String[] args) {//TODO Auto-generated method stub

Demo3 d3=newDemo3();

}publicDemo3()

{for(int i=0;i

{

jbs[i]=newJButton(String.valueOf(i));

}//设置网格布局

this.setLayout(new GridLayout(3,3));for(int i=0;i

{this.add(jbs[i]);

}this.setTitle("网格布局");this.setSize(300,300);this.setLocation(200,200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);

}

}

ac27edc7279d97c6994fd3003ffb3573.png

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的常用组件

直接上程序吧,比较清晰。

1 //AWT基本组件

2 packagecom.ly.ll;3 import java.awt.*;4 import javax.swing.*;5

6 public classcompoment {7

8 Frame f; //创建窗口

9 Button bt;10 CheckboxGroup cbg; //复选框组

11 Checkbox male,female,married; //复选框

12 Choice colorChoice; //下拉选框

13 List colorList; //列表选择框

14 TextArea ta; //文本域(多行)

15 TextField name; //文本域(单行)

16

17 public static voidmain(String []args)18 {19 compoment cp=newcompoment();20 }21

22

23 publiccompoment()24 {25 //创建组件

26 f=new Frame("测试界面");27 bt=new Button("确认");28 cbg=newCheckboxGroup();29 male =new Checkbox("男",cbg,true);30 female =new Checkbox("女",cbg,false);31 married =new Checkbox("是否已婚?",false);32 colorChoice=newChoice();33 colorList=new List(3,true);34 ta=new TextArea(5,20); //5行20 列

35 name=new TextField(50); //50列36

37 //初始化组件

38 colorChoice.add("红");39 colorChoice.add("黄");40 colorChoice.add("蓝");41 colorList.add("红");42 colorList.add("黄");43 colorList.add("蓝");44 //panel装载文本按钮

45 Panel bottom=newPanel();46 bottom.add(name);47 bottom.add(bt);48 f.add(bottom,BorderLayout.SOUTH); //Frame默认边界布局

49

50 Panel p2=newPanel();51 p2.add(colorChoice);52 p2.add(male);53 p2.add(female);54 p2.add(married);55

56 //创建垂直组件BOX

57 Box topList=Box.createVerticalBox();58 topList.add(ta); //放入多航文本域

59 topList.add(p2);60

61 Box top=Box.createVerticalBox();62 top.add(topList);63 top.add(colorList);64 f.add(top);65 f.pack();66

67 f.setVisible(true);68 }69 }

显示结果:

e2ce8eeeedfc16aa66184e33ea274ef8.png

这样就对上面的知识点有了简单的总结和认识,但是要进行开发还是远远不够的

下面是java实战.转(url)

每日一小步,月过一大步~~加油

转载地址:http://tcips.baihongyu.com/

你可能感兴趣的文章
双击启动tomcat中的startup.bat闪退原因及解决方法
查看>>
完成个人中心—导航标签
查看>>
【C++】C++中变量的声明与定义的区别
查看>>
前端性能优化
查看>>
static
查看>>
属性动画
查看>>
Swift 字符串
查看>>
Python 生成器 Generator 和迭代器 Iterator
查看>>
实现icon和文字垂直居中的两种方法-(vertical-align and line-height)
查看>>
[CareerCup] 3.6 Sort Stack 栈排序
查看>>
Beta版总结会议
查看>>
Cocos2d-x中使用的数据容器类
查看>>
创建ORACLE 查询用户
查看>>
jzoj3297. 【SDOI2013】逃考
查看>>
通过例子学python(2.1)
查看>>
高效率场景-内存映射
查看>>
异步编程学习
查看>>
HDU-4639 Hehe 简单DP
查看>>
js严格模式总结
查看>>
bzoj 2238 Mst
查看>>