




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java程序设计主讲:4.3布局管理器学习目录布局管理器的基本概念顺序布局管理器(FlowLayout)边界布局管理器(BorderLayout)网格布局管理器(GridLayout)布局管理器概述GUI布局管理是指将加入到容器(Container)的组件按照一定的顺序和规则放置,使得GUI界面更适于用户的操作的一系列配置管理工作。容器只负责将组件放入其中,而不负责对这件组件放置的位置和组件尺寸大小进行设置。对于这些布局的管理交由专门的布局管理器来完成。
在Java中布局管理器是通过实现一个LayoutManager的接口,来确保各种类型的布局管理器具有统一的使用方法。布局管理器类图
常用布局管理器在Java中,常用的布局管理器有:顺序布局(FlowLayout)边界布局(BorderLayout)网格布局(GridLayout)卡片布局(CardLayout)盒式布局(BoxLayout)顺序布局
设置为顺序布局方式的容器上放置的组件会顺序从左向右排列一般面板(JPanel)的默认布局方式为顺序布局,而在窗口(JFrame)中的默认布局方式为边界布局。顺序布局管理器FlowLayout类位于java.awt设置容器类为流式布局方式,使用容器类的setLayout()方法voidsetLayout(LayoutManager
manager)设置布局模式为manager模式示例4.3.1运用FlowLayout布局管理器管理界面上的六个按钮。 publicComponentponents() { //创建一个面板并设定其布局管理器为FlowLayoutJPanelpane=newJPanel(newFlowLayout()); //向面板顺序加入按钮 pane.add(newJButton("按钮1")); pane.add(newJButton("按钮2")); pane.add(newJButton("按钮3")); pane.add(newJButton("按钮4")); pane.add(newJButton("按钮5")); pane.add(newJButton("按钮6")); returnpane;//返回当前面板 }练习4.3.1请运用顺序布局管理器对具有五个标签组件的窗体进行布局管理,要求组件对齐的方式为左对齐方式。顺序布局进阶
importjavax.swing.*;importjava.awt.FlowLayout;publicclassFlowLayoutDemoextendsJFrame{
JButtonjStart,jReset;publicFlowLayoutDemo(){super("测试顺序布局模式");jStart=newJButton("开始");jReset=newJButton("重置");FlowLayoutflo=newFlowLayout();
this.setLayout(flo);this.add(jStart);
this.add(jReset);
this.setBounds(200,200,300,100);
this.setVisible(true); }……}
运行结果
创建顺序布局管理器对象将窗口的布局模式设置为顺序(流式)布局方式边界布局
边界布局管理器为BorderLayout类位于java.awt包边界布局方式将界面划分为五个使用区域示例4.3.2运用BorderLayout布局管理器管理界面上的五个按钮。publicComponentponents(){JPanelpan=newJPanel();pan.setLayout(newBorderLayout());//设置布局管理器为BorderLayoutpan.add(BorderLayout.NORTH,newJButton("北方"));//放置在顶部pan.add(BorderLayout.SOUTH,newJButton("南方"));//放置在底部pan.add(BorderLayout.EAST,newJButton("东方"));//放置在右部pan.add(BorderLayout.WEST,newJButton("西方"));//放置在左部pan.add(BorderLayout.CENTER,newJButton("中央"));//放置在中间位置returnpan;}练习4.3.2请运用边界布局管理器对具有五个标签组件的窗体进行布局管理。边界布局进阶
classBorderLayoutPanelextendsJFrame{JLabelgameInfo,leftBorder,rightBorder;JScrollPanetextScroll;JTextAreagameText;JButtonstartButton; publicBorderLayoutPanel(){ super("测试边界布局模式");this.setLayout(newBorderLayout());gameInfo=newJLabel("游戏说明");leftBorder=newJLabel("左边界");rightBorder=newJLabel("右边界");startButton=newJButton("开始游戏");this.add(gameInfo,"North");gameText=newJTextArea("游戏说明",100,100);textScroll=newJScrollPane(gameText,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);this.add(textScroll,"Center");this.add(gameInfo,"North");this.add(leftBorder,"West");this.add(rightBorder,"East");this.add(startButton,"South"); }
运行结果
设定面板容器的布局模式为边界布局
添加组件到面板上部
添加组件到面板中部网格布局
网格布局方式将界面平均划分为几个使用区域,这些区域类似表格网格布局管理器GridLayout类,位于java.awt包构造方法说明GridLayout()创建一个网格布局,默认的网格数为1行1列GridLayout(introws,intcols)创建一个网络布局,其行列数分别为:rows行cols列示例4.3.3运用GridLayout创建一个三行三列按钮的窗体。 publicComponentponents() {//创建一个面板并设定其布局管理器为GridLayout JPanelpane=newJPanel(newGridLayout(3,3)); //向面板顺序加入按钮 pane.add(newJButton("1")); pane.add(newJButton("2")); pane.add(newJButton("3")); pane.add(newJButton("4")); pane.add(newJButton("5")); pane.add(newJButton("6")); pane.add(newJButton("7")); pane.add(newJButton("8")); pane.add(newJButton("9")); returnpane; }注意:当加入容器的组件数量超过所设定的组件放置档数时,GridLayout会自动增加列数。网格布局进阶
importjava.awt.GridLayout;importjavax.swing.*;classGridLayoutPanelextendsJFrame{JLabeljA,jB,jLeft,jRight;
publicGridLayoutPanel(){ …… jA=newJLabel(iconA); jB=newJLabel(iconB); jRight=newJLabel(iconRight); jLeft=newJLabel(iconLeft);
GridLayoutglo=newGridLayout(1,4);
this.setLayout(glo);
this.add(jA);
this.add(jLeft);
this.add(jRight);
this.add(jB);}}
运行结果
创建网络布局管理器对象将窗口的布局模式设置为网络布局方式网格包布局管理器GridBagLayout类似于网格布局,允许组件放置时跨越多行或列。示例4.3.4请使用GridBagLayout布局管理设计一个如下图所示的窗体。publicComponentponents(){ //创建一个面板并设定其布局管理器为网格包布局JPanelpane=newJPanel(newGridBagLayout()); GridBagConstraintsgc=newGridBagConstraints();…… Stringnames[]={"组合框","李四","王五"}; boBoxcomb=newboBox(names);//创建组合框对象 gc.fill=GridBagConstraints.VERTICAL;//设定伸缩性为垂直型 gc.gridx=0;//设定放置的位置为第0列 gc.gridy=0;//设定放置的位置为第0行 gc.gridwidth=1;//设定组件的宽度为1列 gc.gridheight=3;//组件的高度为3行 gc.weighty=10;//垂直扩展度为10 …… pane.add(textField,gc);//将单文本框加入到面板容器中 returnpane;//返回组件容器(即控件面板)}练习4.3.3请参照示例编程创建图4.3.13所示的窗体。本节小结在Java的GUI系统设计中,通常使用布局管理器来管理组件容器中的布局,即控制容器中的组件的位置和尺寸大小。在Java的awt包中提供多种功能强大、灵活的布局管理器,这些布局管理器通过实现LayoutManager接口来提供统一的接口。常用的有:
FlowLayout、BorderLayout、GridLayout、GridBagL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CI 265-2024家用和类似用途饮用水处理装置复合滤芯技术要求
- T/SSBME 1-2024医疗器械上市后研究和风险管控计划编写指南
- 兽药原料采购合同2篇
- 与吸氧有关的试题及答案
- 上锁挂牌安全试题及答案
- 公司入股出资保证金合同3篇
- 外服-劳动合同2篇
- 江苏省扬州市建设工程预拌混凝土供应合同5篇
- 双方约定礼品赠送使用协议书5篇
- 空调器安装工程承包合同6篇
- 环境影响评价工程师之环评法律法规题库及答案
- 对乳腺癌患者的心理护理
- 2025年公务员考试《行测》模拟题及答案(详细解析)
- 2024员工质量意识培训
- 《我国高端装备制造业产品出口存在的问题及优化建议》11000字(论文)
- 智能仓储系统集成方案
- 塔吊定期检查记录表
- 信息系统监理师(基础知识、应用技术)合卷软件资格考试(中级)试题与参考答案(2024年)
- 上海市上宝中学新初一分班(摸底)语文模拟试题(5套带答案)
- 河南省南阳市2023-2024学年高二下学期期终质量评估+物理试卷答案
- 食品安全与质量检测技能大赛考试题库400题(含答案)
评论
0/150
提交评论