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

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

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

一、4大布局管理器。

1.边界布局BorderLayout

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

举例:

 

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

4.CardLayout布局器

CardLayout布局器采用时间进行管理组件,可以看层是一个卡片盒,只有最上面的compent可见。

剩下的两种是我体会比较深的,特别是空布局,简直万能,不过就是要自己定位有些麻烦,大家有机会可以试试。

1.null布局

Container 的布局管理器设置为nullsetLayout(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 package com.ly.ll; 3 import java.awt.*; 4 import javax.swing.*; 5  6 public class compoment { 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 void main(String []args)18     {19         compoment cp=new compoment();20     }21     22     23     public compoment()24     {25         //创建组件26         f=new Frame("测试界面");27         bt=new Button("确认");28         cbg=new CheckboxGroup();29         male =new Checkbox("男",cbg,true);30         female =new Checkbox("女",cbg,false);31         married =new Checkbox("是否已婚?",false);32         colorChoice=new Choice();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=new Panel();46         bottom.add(name);47         bottom.add(bt);48         f.add(bottom,BorderLayout.SOUTH); //Frame默认边界布局49         50         Panel p2=new Panel();51         p2.add(colorChoice);52         p2.add(male);53         p2.add(female);54         p2.add(married);55         56         //创建垂直组件BOX57         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 }

 

 

显示结果:

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

 下面是java实战.转(url)

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

转载于:https://www.cnblogs.com/ly199553/p/5321346.html

你可能感兴趣的文章
Javascript函数调用的四种模式
查看>>
【python】标准库的大致认识
查看>>
用 Asterisk 搭建自己的免费 VoIP 服务器
查看>>
lua笔记二 赋值语句
查看>>
Android 中 Internal Storage 和 External Storage 的区别
查看>>
移动端拖拽(模块化开发,触摸事件,webpack)
查看>>
spring配置和注解事务同时存在导致的事务嵌套
查看>>
AE要素选择(点选和拉框选择)
查看>>
AJAX-初学AJAX本地环境配置
查看>>
Java内存模型深度解析:顺序一致性--转
查看>>
VSCode调试配置
查看>>
前端MVC学习总结(三)——AngularJS服务、路由、内置API、jQueryLite
查看>>
Selenium Web 自动化 - 项目持续集成(进阶)
查看>>
java&javaweb学习笔记
查看>>
UML统一建模语UML2和EnterpriseArchitect
查看>>
C#编程(二十二)----------继承的类型
查看>>
【精选】Nginx负载均衡学习笔记(一)实现HTTP负载均衡和TCP负载均衡(官方和OpenResty两种负载配置)...
查看>>
在 Visual Studio 2017 中找回消失的“在浏览器中查看”命令
查看>>
ajaxupload 异步上传工具
查看>>
微软面试题: 找出二叉树上任意两个结点的最近共同父结点。
查看>>