java 布局教程_java布局学习(新)
坚持学习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);
}
}
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);
}
}
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);
}
}
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 }
显示结果:
这样就对上面的知识点有了简单的总结和认识,但是要进行开发还是远远不够的
下面是java实战.转(url)
每日一小步,月过一大步~~加油
java 布局教程_java布局学习(新)相关推荐
- 课工场java新手基础教程_Java新手学习路线,学Java不走弯路
Java新手学习路线,学Java不走弯路 很多人都会有一个疑问,就是学习Java能看懂,但是不会写,所以学习Java一定要掌握一个有效率的学习方法,一个适合自己的学习方法,作为一个新人,千万不要自己瞎 ...
- java数据结构教程_Java数据结构
Java实用程序包提供的数据结构非常强大,可以执行各种功能. 这些数据结构由以下接口和类组成 - Enumeration BitSet Vector Stack Dictionary Hashtabl ...
- java邮件教程_Java发送Email/邮件
使用Java应用程序发送邮件是很简单的,需要安装JavaMail API 和Java Activation Framework (JAF) 在机器上. 可以从Java的标准网站上下载JavaMail( ...
- java设计模式教程_Java设计模式教程
java设计模式教程 课程大纲 架构和计算机科学中的设计模式是记录特定专业领域中设计问题的解决方案的正式方法. 这个想法是由建筑师Christopher Alexander在建筑领域引入的,并已被修改 ...
- java导出文件教程_Java文件教程
File类的对象是文件或目录的路径名的抽象表示. 创建文件 我们可以从以下创建一个File对象 - 一个路径名 一个父路径名和子路径名 一个URI (统一资源标识符) 可以使用File类的以下构造函数 ...
- java io教程_Java IO教程
java io教程 Java provides several classes in java.io package to work with text, stream data, and file ...
- java nio教程_Java NIO教程
java nio教程 1.简介 Java NIO是Java 1.4引入的一个库. 自从Java NIO推出以来,它提供了另一种方法来处理I / O和网络事务. 它被认为是Java网络和Java IO库 ...
- java web 教程_Java Web服务教程
java web 教程 Welcome to the Java Web Services Tutorial. Here we will learn about web services, useful ...
- java 线程起名字_java多线程学习三::::为什么要给线程起名字并且知道守护作用?...
为什么要会线程起名字呢? 你如果拿到一连串的Thread-01,Thead-02我想你应该会疯掉,看以下代码 package rs.thread.day0504; /** * @auther rs * ...
最新文章
- N-GRAM模型的概率公式
- 淘宝精品案例JS、jQuery
- python 格式话-占位符
- 整理:各个浏览器及web服务器对URL(get)长度的限制
- oracle数据库read only,oracle 报错Linux-x86_64 Error: 30: Read-only file system
- 【Python】理解Python(2) - help() 函数? or 类?
- 中国象棋将帅问题java_编程之美读书笔记1.2——中国象棋将帅问题
- tp交换机管理页面_二层网管交换机的管理方法
- 两转变两服务器,两大服变鬼两老服制霸,《魔兽世界》怀旧免转结束后的服务器调查...
- android交友php,android交友约会社交APP完整源码Dating App 3.7(服务端+客户端)
- 程序员也要学英语——英语构词法
- Scratch软件编程等级考试四级——20210320
- 人生没有白读的书,每一本都算数~
- 我们需要有创业精神,但不是每个人都要去创业
- (业务)自动生成邀请码
- Navicat12.1破 解教程,亲测可用
- Qt编写通用主界面V2019
- gk888t打印机安装
- Python每日一练——列表,元组和字典第十一关:del和pop的用法
- 史上最简单-在 windows+python3.6 环境下创建自己的YOLOv3 [ VOC2007 ] 数据集
热门文章
- STM32 进阶教程 7 - C与C++混合编程
- 【arduino】DIY音乐播放器,arduino播放wav音乐,TRMpcm库测试及使用
- Matlab篇(二)MATLAB中addpath的用法 (转)
- 多线程题目 2019.06.02 晚
- 开源工作流程引擎ccflow多人待办处理模式的详解
- 《AngularJS深度剖析与最佳实践》一2.2 模块
- Android opencv cvCvtColor()的转换
- solrcloud replica collection core shard slice 概念讲解
- Team Leader你会带团队吗?你懂合作吗?你好像都不会啊!(上)
- RedHat Directory Server 8.2 Installation Guide