当前位置: 首页 > news >正文

java.awt包中组件的布局

容器可以调用setLayout(布局对象)方法来设置自己的布局

1.流水布局:FlowLayout

     布局策略:加入到容器中的组件将按照加入的先后顺序从左向右排列,一行排满之后就转到下一行继续从左至右排列,每一行中的组件都

                    居中对齐,组件之间的默认水平和垂直间隙是5个像素,组件的大小为默认的最佳大小

     构造方法:FlowLayout()

     常用方法:setHgap(int hgap):重新设置布局的水平间隙hgap

                    setVgap(int vgap):重新设置布局的垂直间隙vgap

                    public void setAlignment(int n):重新设置容器布局的对齐方式,n取值如下

                                                   FlowLayout.LEFT,FlowLayout.CENTER,FlowLayout.RIGHT

     注意:对于添加到使用这种布局的容器中的组件,组件调用setSize(int x,int y)方法设置的大小无效

2.边界布局:BorderLayout

     布局策略:使用这种布局的容器最多只能添加5个组件,并且必须使用以下方法将组件添加到容器中

                    public void add(组件名,int n):n决定将组件添加到容器中的哪个区域,取值如下:BorderLayout.NORTH,

                                                                BorderLayout.SOUTH,BorderLayout.WEST,BorderLayout.EAST,

                                                                BorderLayout.CENTER   

     注意:添加到某个区域的组件将占据整个区域,每个区域只能放置一个组件,如果向某个已放置了组件的区域再放置一个组件,则先前

              的组件将被后者替换掉

3.牌式布局:CardLayout

     布局策略:在同一时刻,只能从加入到容器中的组件中选出一个来显示,这个被显示的组件将占据所有的容器空间

     使用这种容器的步骤如下:

          A.创建一个CardLayout对象:CardLayout card=new CardLayout();

          B.将某个容器con的布局设置为该布局:con.setLayout(card);

          C.容器con调用以下方法将组件添加到容器中

                  add(String s,Component b)

                  b:组件名

                  s:组件的代号,不同的组件代号应互不相同

          D.CardLayout对象可以调用以下方法显示容器中的组件

                  show(容器名,组件代号):显示指定代号的组件

                  first(容器名):显示加入到容器中的第一个组件

                  last(容器名):显示最后一个组件

                  previous(容器名):显示上一个组件

                  next(容器名):显示下一个组件

4. 网格布局:GridLayout

     布局策略:把容器划分成若干行乘若干列的网格区域,组件就位于这些划分出来的小格中;每个网格都是大小相同并且强

                    制组件与网格的大小相同                    

     构造方法:GridLayout(int m,int n)

                    m为行数,n为列数

5.盒式布局:BoxLayout

     该类在javax.swing.border包中,而不是在包java.awt中

     布局策略:加入到容器中的组件排列在一行(或一列),组件按照加入的先后的顺序从左向右(或从上向下)排列,容器的两端是剩余的空间

                    ,即使组件再多,也不会延伸到下一行(或下一列),这些组件可能会被缩小大小,紧缩在这一行(或一列)中

     构造方法:BoxLayout(容器名,int axis)

                    axis决定盒式布局是行型盒式布局还是列型盒式布局,取值如下

                    BoxLayout.X_AXIS:行型

                    BoxLayout.Y_AXIS:列型

     Box:它是一个盒式容器,其默认布局为盒式布局,而且不允许更改盒式容器的布局;它也是在包javax.swing中

              构造方法:createHorizontalBox():获取一个行型盒式布局的盒式容器 

                             createVerticalBox():获取一个列型盒式布局的盒式容器

              常用类方法:createHorizontalStruct(int width):设置盒式容器中组件的水平间隙width

                                createVerticalStruct(int height):设置盒式容器中组件的垂直间隙height

6.空布局:null

     当一个组件使用setBounds(int a,int b,int width,int height)方法将其定位在容器中的某个位置后,如果容器不使用空布局,

     则setBounds(int a,int b,int width,int height)方法将失效

 

 

 

 

 

相关文章:

  • 泛型总结
  • 自定义对话框java.awt.Dialog
  • HTTPS工作原理
  • 文件对话框,消息对话框,确认对话框
  • 互联网9大技术趋势
  • Java SE中的线程
  • HTML 页面中的 SVG
  • ODBC方式连接数据库
  • java.io.File类
  • bootstrap导入JavaScript插件
  • 字节输入输出流:java.io.FileInputStream和java.io.FileOutputStream
  • HDU 2019
  • 字符输入输出流:java.io.FileReader和java.io.FileWriter
  • App Store官方邮箱列表--(推荐收藏)
  • 字符串输入输出流:java.io.BufferedReader和java.io.BufferedWriter
  • Cumulo 的 ClojureScript 模块已经成型
  • eclipse(luna)创建web工程
  • ECMAScript6(0):ES6简明参考手册
  • ES6--对象的扩展
  • input实现文字超出省略号功能
  • Java 多线程编程之:notify 和 wait 用法
  • Js基础知识(一) - 变量
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • leetcode386. Lexicographical Numbers
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • React 快速上手 - 07 前端路由 react-router
  • Webpack 4 学习01(基础配置)
  • 翻译:Hystrix - How To Use
  • 简单易用的leetcode开发测试工具(npm)
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 在Unity中实现一个简单的消息管理器
  • !!Dom4j 学习笔记
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (补)B+树一些思想
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)我也是一只IT小小鸟
  • (转载)hibernate缓存
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .net访问oracle数据库性能问题
  • /boot 内存空间不够
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [2013AAA]On a fractional nonlinear hyperbolic equation arising from relative theory
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [C#]猫叫人醒老鼠跑 C#的委托及事件
  • [codevs 1288] 埃及分数 [IDdfs 迭代加深搜索 ]