5-2 布局管理器

合集下载

Qt5布局管理(一)——QSplitter分割窗口类

Qt5布局管理(一)——QSplitter分割窗口类

Qt5布局管理(⼀)——QSplitter分割窗⼝类转载:概述本⽂⾸先通过三个实例分别介绍Qt5的分割窗⼝QSplitter类、停靠窗⼝QDockWidget类、堆栈窗体QStackedWidget类,然后介绍布局管理器的使⽤。

最后通过⼀个综合实例介绍以上内容的综合应⽤。

分割窗⼝QSplitter类实例效果重要代码这个程序的所有代码都集中在main.cpp⽂件中:1 #include <QApplication>2 #include <QSplitter>3 #include <QTextEdit>4 #include <QTextCodec>5int main(int argc, char *argv[])6 {7 QApplication a(argc, argv);8//ont::QFont(const QString & family, int pointSize = -1, int weight = -1, bool italic = false)9//第⼀个参数是字体族,第⼆个是字体尺⼨,第三个是加粗系数,第四个是斜体设置10 QFont font("ZYSong18030",12);//指定显⽰字体11 a.setFont(font);1213 QSplitter *splitterMain;14 QTextEdit *textleft;15 QSplitter *splitterRight;16 QTextEdit *textUp;17 QTextEdit *textBottom;18 splitterMain=new QSplitter(Qt::Horizontal,0); //Horizontal:⽔平的19 textleft=new QTextEdit(QObject::tr("Left Widget"),splitterMain);20 textleft->setAlignment(Qt::AlignCenter);21//右部分分割窗⼝22 splitterRight=new QSplitter(Qt::Vertical,splitterMain); //Vertical:垂直的23 splitterRight->setOpaqueResize(false); //Opaque:不透明的24 textUp =new QTextEdit(QObject::tr("Top Widget"),splitterRight);25 textUp->setAlignment(Qt::AlignCenter);26 textBottom=new QTextEdit(QObject::tr("Bottom Widget"),splitterRight);27 textBottom->setAlignment(Qt::AlignCenter);28 splitterMain->setStretchFactor(0,1); //Stretch Factor:拉伸系数29 splitterMain->setWindowTitle(QObject::tr("Splitter"));30 splitterMain->show();3132return a.exec();33 }代码笔记1.字体设置代码1 QFont::QFont(const QString & family, int pointSize = -1, int weight = -1, bool italic = false)这是QFont对象的构造函数之⼀,第⼀个参数是字体族,第⼆个是字体尺⼨,第三个是加粗系数,第四个是斜体设置。

QtCreator布局管理器的使用

QtCreator布局管理器的使用

QtCreator布局管理器的使用布局管理器是用于在应用程序用户界面中自动排列和定位窗口部件的工具。

Qt Creator提供了多种布局管理器,以满足不同的需求。

使用布局管理器可以使窗口部件自动适应不同的窗口大小和分辨率,并确保它们以一致的方式进行布局。

在设计器中,可以通过拖放的方式将窗口部件添加到窗口区域。

布局管理器可以使用以下几种方式进行设置:1. 垂直布局管理器(QVBoxLayout):它可以将窗口部件垂直排列。

在设计器中,拖放一个垂直布局管理器到窗口区域,并将要排列的窗口部件添加到该布局管理器中。

在布局管理器的属性窗口中,可以设置间距和对齐方式。

2. 水平布局管理器(QHBoxLayout):它可以将窗口部件水平排列。

操作方式类似于垂直布局管理器。

3. 网格布局管理器(QGridLayout):它将窗口部件以网格的形式排列。

在设计器中,拖放一个网格布局管理器到窗口区域,并使用布局管理器的属性窗口设置网格的行数和列数。

然后,将窗口部件添加到该布局管理器中的指定位置。

4. 堆叠布局管理器(QStackedLayout):它将窗口部件叠放在一起,只显示当前活动的窗口部件。

在设计器中,拖放一个堆叠布局管理器到窗口区域,并将要堆叠的窗口部件添加到该布局管理器中。

在布局管理器的属性窗口中,还可以设置部件的拉伸因子、大小约束和边距等属性。

布局管理器还提供了一些方法,可以通过编程方式修改布局以及窗口部件的属性。

例如,可以使用addLayout(方法将一个布局管理器添加到另一个布局管理器中,以创建更复杂的布局。

另外,布局管理器还支持对窗口部件进行扩展、收缩和隐藏等操作。

例如,可以使用addStretch(方法将一个弹簧部件添加到布局管理器中,使其占据剩余空间。

还可以使用addWidget(方法将一个窗口部件添加到布局管理器中。

总之,Qt Creator提供了丰富的布局管理器,并且使用它们非常方便。

通过使用布局管理器,可以轻松创建自适应和易于管理的用户界面。

布局管理器

布局管理器

布局管理器布局管理器是软件开发领域中一种重要的工具,用于管理用户界面的布局和组件的位置。

通过使用布局管理器,开发人员可以更加灵活和高效地创建和管理用户界面,使其具有良好的可读性和可扩展性。

本文将从布局管理器的基本概念、常见类型以及使用布局管理器时的注意事项等方面进行探讨。

一、布局管理器的基本概念布局管理器是一种用于安排和管理用户界面组件位置和大小的工具。

它的主要功能是根据开发人员的要求和设定,自动地对用户界面进行布局,使其符合开发人员的设计需求。

布局管理器基于一系列布局规则和算法,帮助开发人员快速而方便地实现用户界面的布局。

二、常见的布局管理器类型1. 流式布局管理器(FlowLayout):流式布局管理器是一种最简单、最常用的布局管理器之一。

它按照组件的添加顺序,将组件一行一行地排列,如果一行排不下,则自动换行。

流式布局管理器适用于需要按照添加顺序进行排列的界面。

2. 边界布局管理器(BorderLayout):边界布局管理器将用户界面分为五个区域:北、南、东、西和中。

开发人员可以将组件放置在指定的区域内,边界布局管理器将根据区域的大小和组件的大小来确定组件的位置。

3. 网格布局管理器(GridLayout):网格布局管理器将用户界面划分为规则的网格,每个网格可以放置一个组件。

网格布局管理器可以根据开发人员的要求来设定每个网格的大小和组件之间的间距。

4. 卡片布局管理器(CardLayout):卡片布局管理器允许在同一区域内放置多个组件,但只显示其中的一个。

开发人员可以通过切换卡片来显示不同的组件,从而实现界面的切换效果。

5. 网格袋布局管理器(GridBagLayout):网格袋布局管理器是一种功能强大的布局管理器,可以实现高度定制化的用户界面布局。

它通过将组件放置在网格袋中,并设定组件在网格袋内的位置和大小来控制布局。

三、使用布局管理器的注意事项1. 理解各种布局管理器的特点和适用场景,根据实际需要选择合适的布局管理器。

学生信息管理系统课程设计java

学生信息管理系统课程设计java

学生信息管理系统课程设计 java一、课程目标知识目标:1. 让学生理解学生信息管理系统的基本概念,掌握Java语言实现该系统的核心知识,包括类的定义、对象的使用、集合框架等。

2. 使学生掌握如何使用Java编写数据库连接程序,实现对数据库的增、删、改、查等基本操作。

3. 帮助学生了解Java GUI编程,能够使用Swing组件设计出友好的用户界面。

技能目标:1. 培养学生运用Java语言设计并实现学生信息管理系统,提高编程实践能力。

2. 培养学生分析问题、解决问题的能力,能够根据需求独立完成系统功能模块的设计与实现。

3. 培养学生具备一定的项目开发经验,能够进行团队合作,分工协作完成项目。

情感态度价值观目标:1. 激发学生对Java编程的兴趣,培养其主动学习的习惯,提高学习积极性。

2. 培养学生具备良好的编程习惯,注重代码规范,提高代码质量。

3. 培养学生的团队协作意识,使其认识到团队协作的重要性,学会与他人共同解决问题。

课程性质:本课程为实践性较强的Java语言课程,以项目驱动的方式进行教学,旨在提高学生的编程能力、项目开发能力和团队协作能力。

学生特点:学生已具备一定的Java基础,具有一定的编程能力,但缺乏实际项目经验和团队协作能力。

教学要求:结合学生特点,注重实践操作,引导学生主动参与,充分调动学生的积极性,培养其编程实践和团队协作能力。

在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. Java基础回顾:包括类与对象、继承与多态、集合框架等基础知识,对应教材第一章至第四章。

- 类与对象:定义类、创建对象、封装、构造方法等。

- 继承与多态:继承的概念、方法重写、多态性等。

- 集合框架:常用集合类、迭代器、泛型等。

2. 数据库连接与操作:学习JDBC技术,实现与数据库的连接、数据查询、插入、删除和修改操作,对应教材第五章。

- JDBC概念与使用:理解JDBC的作用,掌握JDBC API的使用。

02 布局管理器

02  布局管理器

表格布局
在XML布局文件中定义表格布局管理器的基本的语法格式如下:
<TableLayout xmlns:android="/apk/res/android" 属性列表 > <TableRow 属性列表> 需要添加的UI组件 </TableRow> 多个<TableRow> </TableLayout>
android:foregroundGravity
相对布局
相对布局是指按照组件之间的相对位置来进行布局,如某个组件在 另一个组件的左边、右边、上方或下方等。
在XML布局文件中,定义相对布局管理器可以使用<RelativeLayout>标记, 其基本的语法格式如下:
<RelativeLayout xmlns:android="/apk/res/android" 属性列表 > </RelativeLayout>
线性布局
线性布局是将放入其中的组件按照垂直或水平方向来布局,也就是 控制放入其中的组件横向排列或纵向排列。在线性布局中,每一行(针 对垂直排列)或每一列(针对水平排列)中只能放一个组件。并且 Android的线性布局不会换行,当组件一个挨着一个排列到窗体的边缘后, 剩下的组件将不会被显示出来。
在Android中,可以在XML布局文件中定义线性布局管理器,也可以使用 Java代码来创建。推荐使用在XML布局文件中定义线性布局管理器。在XML布局 文件中定义线性布局管理器,需要使用<LinearLayout>标记,其基本的语法格式 如下:
XML属性
android:gravity
描述
用于设置布局管理器中各子组件的对齐方式 用于指定哪个组件不受gravity属性的影响

qt里setlayout用法

qt里setlayout用法

Qt里setLayout用法在Qt中,setLayout是一种常用的布局管理器函数,用于设置窗口或窗口部件的布局。

布局管理器是一种用于自动调整窗口部件位置和大小的工具,可以使界面更加灵活和适应不同的窗口尺寸。

本文将详细介绍Qt中setLayout的用法,包括创建布局管理器、设置布局管理器、添加和删除窗口部件等操作。

1. 创建布局管理器在使用setLayout之前,我们首先需要创建一个布局管理器。

Qt提供了几种常用的布局管理器,包括垂直布局(QVBoxLayout)、水平布局(QHBoxLayout)、网格布局(QGridLayout)等。

1.1 垂直布局(QVBoxLayout)垂直布局将窗口部件按照垂直方向依次排列,可以使用QVBoxLayout类来创建垂直布局管理器。

QVBoxLayout *layout = new QVBoxLayout();1.2 水平布局(QHBoxLayout)水平布局将窗口部件按照水平方向依次排列,可以使用QHBoxLayout类来创建水平布局管理器。

QHBoxLayout *layout = new QHBoxLayout();1.3 网格布局(QGridLayout)网格布局将窗口部件按照网格形式排列,可以使用QGridLayout类来创建网格布局管理器。

QGridLayout *layout = new QGridLayout();1.4 其他布局管理器除了上述常用的布局管理器,Qt还提供了一些其他的布局管理器,如堆叠布局(QStackedLayout)、表单布局(QFormLayout)等,根据实际需求选择合适的布局管理器。

2. 设置布局管理器创建布局管理器后,我们需要将其设置给窗口或窗口部件,以便布局管理器能够对窗口部件进行布局。

QWidget *widget = new QWidget();widget->setLayout(layout);在上述代码中,我们创建了一个QWidget对象widget,并通过setLayout函数将布局管理器layout设置给widget。

第五章GUI程序设计与常用组件讲义

AWT是Java早期的技术,提供的组件有限,无 法满足应用程序组件多样化的要求。为了弥 补这个不足,Sun公司开发出Swing包,它有 别于AWT,不依赖于特定的系统平台,对外 提供多样化的组件及外观,并且保持外观风 格的一致。
5.1.1 GUI组成元素分类
构成图形用户界面的各种元素和成份可以粗 略地分为三类:容器(container)、组件 (components)和用户自定义成份。
熟悉应用Swing的容器和组件的概念 准确描述Swing中常用组件的作用及主要方法
的功能 熟悉应用Swing的基本组件设计图形用户界面 通过布局管理器设计窗口布局
5.1 GUI概述
用户界面:用户与计算机进行交互的渠道,人(眼睛和 手指…)和计算机(硬件和软件)的通信,协同完成一定 任务。与计算机输入/输出过程都相关。
javax.swing.JList
图5-2 Swing和AWT部分组件的继承和层次关系
5.1.2 AWT和Swing介绍 ---- Component类
▪java.awt包中最核心的类就是Component类,它
是构成Java图形用户界面的基础,大部分组件都是 由该类派生出来的。 Component类是一个抽象类, 其中定义了组件所具有的一般功能:
5.1.2 AWT和Swing介绍(续)
ponent
java.awt.Container
javax.swing.JComponent
java.awt.Window
javax.swing.JWindow
java.awt.Frame
javax.swing.JFrame
java.awt.Dialog java.awt.Panel
本单位。组件是一个可以以图形化的方式 显示在屏幕上并能与用户进行交互的对象,

JavaGUI布局管理器

JavaGUI布局管理器容器可设置布局管理器,管理容器中组件的布局:container.setLayout(new XxxLayout());Java有6种布局管理器,AWT提供了5种:FlowLayoutBorderLayoutGridLayoutGridBagLayoutCradLayoutSwing还提供了⼀种:BoxLayout1、FlowLayout 流式布局顾名思义,组件像⽔流⼀样,从第⼀⾏开始,从左向右依次排列,碰到边界时转到下⼀⾏继续。

三个构造函数:FlowLayout() //使⽤默认参数FlowLayout(int align) //设置对齐⽅式FlowLayout(int align,int hgap,int vgap) //设置对齐⽅式、⽔平间距、垂直间距align是FlowLayout类的常量,⽐如:FlowLayout.LEFT,FlowLayout.CENTER2、BorderLayout 边界布局将容器划分为EAST、WEST、SOUTH、NORTH、CENTER五个部分,每个部分可放置⼀个组件。

2个构造函数:BorderLayout() //使⽤默认参数BorderLayout(int hgap,int vgap) //设置⽔平间距、垂直间距放置组件时需指定位置:container.add(Component comp, Borderlayout.SOUTH); //第⼆个参数是BorderLayout类的常量,指定组件位置container.add(Component comp); //缺省位置时,默认为BorderLayout.CENTER,放在中间⼀共5个位置,⼀个位置最多放1个组件。

当然,可以在⼀个位置放置多个组件,只是后放置的组件会覆盖之前放置的组件。

也可以⼀个都不放。

3、GridLayout ⽹格布局将容器划分为指定⾏数、列数的⽹格,每个格⼦的尺⼨都相同,⼀个格⼦中放置⼀个组件,适合组件⼤⼩差不多的,⽐如放置计算器的按钮。

1-12 AWT布局

West North East Center South
public BorderLayout() public BorderLayout(int horizontalGap, int verticalGap)
各组件间的水平和竖直间距为缺省值0个象素。
各组件间的水平和竖直间距为指定值。
外观的管理与控制 ——BorderLayout
public void show(Container parent, String name) public void next(Container parent) public void previous(Container parent) public void first(Container parent) public void last(Container parent) 其中,Container是拥有该CardLayout布局管理器的容器。
外观的管理与控制 ——CardLayout
CardLayout类有二种构造方法:
public CardLayout()
组件距容器左右边界和上下边界的距离为缺省值0个象素。
public CardLayout(int horizontalGap, int verticalGap)
组件距容器左右边界和上下边界的距离为指定值。 与BorderLayout类和GridLayout类相类似,每张牌中只能放 置一个组件,如果想在一张牌放置多个组件,则必须先在该 牌放一个容器,再将多个组件放在该容器中。 采用CardLayout布局方式时,向容器中添加组件时可以为 组件取一个名字,以供更换显示组件时使用: add(String, Component);
如果容器使用了BorderLayout布局方式,则用add()方法往容 器中添加组件时必须指明添加的位置,否则组件将无法正确显 示(不同的布局管理器,向容器中添加组件的方法也不同)。 add(“West”, new Button(“West”)); add(“North”, new Button(“North”)); add(new Button(“West”), BorderLayout.SOUTH); 若没有指明放置位置,则表明为默认的“Center”方位。 每个区域只能添加一个组件,若添加多个,则只能显示一个。 如果想在一个区域添加多个组件,则必须先在该区域放一个 Panel容器,再将多个组件放在该Panel容器中。 若每个区域或若干个区域没有放置组件,东西南北区域将不 会有预留,而中间区域将置空。

Qt布局管理及焦点系统原理

第5章Qt布局管理及焦点系统目录5.1布局原理5.1.1 布局基础5.1.2 部件拉伸(Stretch)原理及大小策略5.1.3 大小约束(主窗口最大最小大小的设置)5.1.4 内容边距(ContentsMargins)、间距(spacing)、QSpace5.1.5 嵌套布局及布局位于容器中5.2 各布局管理器类5.2.1 QBoxLayout及其子类(盒式布局)5.2.2 QGridLayout类(网格布局)5.2.3 QFormLayout类(表单布局)5.3 实现多页面切换5.3.1 QStackedLayout类(分组布局或栈布局)5.3.2 QStackedWidget类5.3.3 QTabBar类(选项卡栏)5.3.4 QTabWidget类(选项卡部件)5.4 QSplitter分离器(或分隔符)5.4.1 QSplitter类(分离器)5.4.2 QSplitterHandle类(分界线)5.5 自定义布局管理器5.5.1 QLayout抽象类中的公有成员函数5.5.2 QLayoutItem、QSpacerItem、QWidgetItem类5.5.3 自定义布局的实现5.6 Qt焦点系统5.6.1 焦点链(焦点循环)5.6.2 获取焦点信息5.6.3 焦点代理(FocusrProxy)5.6.4 设置焦点及焦点策略5.6.5 焦点事件5.6.6 自定义焦点循环5.6.7 QFocusFrame类(焦点框,自定义焦点框的外形)本章公用枚举第5章 Qt 布局管理及焦点系统注意:本章程序都假设读者在pro 文件中已添加了正确的QT+=widgets 语句,文中不再重复累述添加此语句。

本文注重讲解原理,因此使用的是手写的Qt 程序5.1 布局原理5.1.1 布局基础为讲解方便,把Qt 的存局管理类或由这些类创建的对象称为布局管理器简称布局。

使用布局管理器的好处是可以不用为窗口中的每个部件设置其大小和位置,布局管理器会自动对这些部件进行排列,当窗口大小发生变化时,布局还会自动定位和调整部件的大小,当向布局中添加或移除一个部件时,布局会自动适应这些情况,总之使用布局能自动适应很多情形,为我们减少了大量负担。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CardLayout的构造函数
1.CardLayout(),创建一个间隙大小为 0 的新 卡片布局。 2. CardLayout(int hgap, int vgap) 创建一个具有指定的水平和垂直间隙 的新卡片布局。
CardLayout常见函数
1. first(Container parent)
GridLayout构造方法
• public GridLayout()
– 创建一个只有一行的网格,网格的列数根据实际需要 而定
• public GridLayout(int rows, int cols)
– rows和cols两个参数分别指定网格的行数和列数 rows 和cols中的一个值可以为0,但是不能两个都是0。如 果为0,那么网格行(列)数将根据实际需要而定
程序7-8
• 为JFrame实例的内容窗格指定了一个
CardLayout类型的布局管理器,然后向其 中加入了五张卡片,每张卡片都是JPanel 类的一个实例,并且具有不同的背景色。 每当在程序窗口按动鼠标,下一张卡片就 会显示出来。程序7-8
4)GridLayout布局策略
GridLayout布局管理器
组件加入
• 如果希望在某个区域显示多个组件,可以首先在
该区域放置一个内部容器——JPanel组件,然后 将所需的多个组件放到JPanel中,通过内部容器 的嵌套构造复杂的布局 四个边界区域,如果没有使用,大小将变为零, Center区域将会扩展并占据这个未用区域的位置。 如果均没有使用, Center区域将会占据整个窗 口
将会缺省地被放置在Center区域
frame.getContentPane().add(button); 按钮将被放在框架的中部
在容器的每个区域,只能加入一个组件,如果向某个区域
中加入多个组件,那么只有最后一个组件是有效的
frame. getContentPane().add(new JButton(“buttonA”), BorderLayout.SOUTH); frame. getContentPane().add(new JButton(“buttonB”), BorderLayout.SOUTH); frame. getContentPane().add(new JButton(“buttonC”), BorderLayout.SOUTH); 最后只有buttonC显示在South区域。
• GridLayout是一种网格式的布局管理器,它将容 •
• •
器空间划分成若干行乘若干列的网格,组件依次 放入其中,每个组件占据一格 网格每列的宽(高)度都是相同的,这个宽度大致 等于容器的宽度除以网格的列(行)数 组件被放入容器的次序决定了它所占据的位置。 每行网格从左至右依次填充,一行用完之后转入 下一行 当容器的大小改变时,GridLayout所管理的组件 的相对位置不会发生变化,但组件的大小会随之 改变
main()方法 在这个例子中,main()方法有两个 作用。首先,它创建了一个ExGui 类的实例,在这个实例创建之前, 并没有实际可用的b1和b2数据项。 其次,当ExGui实例创建好以后, main()又调用了该实例的go()方 法,在这个方法中,程序的实际功 能得以实现。
public static void main(String args[]){ ExGui that = new ExGui(); that.go(); }
BorderLayout布局管理器
• BorderLayout是顶层容器中内容窗格的缺
省布局管理器 • 由BorderLayout管理的容器被划分成北 (North)南(South)西(West)东(East) 中(Center)五个区域,分别代表容器的上、 下、左、右和中部,用常量 BorderLayout.NORTH、 BorderLayout.SOUTH、BorderLayout.WEST、 BorderLayout.EAST、 BorderLayout.CENTER表示
BorderLayout构造方法
• BorderLayout()
– 构造一个各部分间间距为0的BorderLayout实 例
• BorderLayout(int, int)
– 构造一个各部分间具有指定间距的BorderLayout 实例
在BorderLayout布局管理器的管理下,组件必须通过
2. 3. 4.
翻转到容器的第一张卡片 last(Container parent) 翻转到容器的最后一张卡片 next(Container parent) 翻转到指定容器的下一张卡片 show(Container parent, String name) 翻转到已添加到此布局(使用 addLayoutComponent)的具有指定 name 的组 件
Flowlayout:从上到下,从左到右依次摆放,每 行均居中,它是Panel、Applet的缺省布局;
程序7-4
import java.awt.*; import javax.swing.*; public class ExGui { private JFrame frame; private JButton b1; private JButton b2;
GridLayout(行列网格状布局);形似一个无框线
的表格,每个单元格中放一个组件
NULL布局:用setLayout(null)可以不使用布局,此
时可以对组件进行绝对定位。 Public void setBounds(int x,int y,int w,int h)
1)FlowLayout布局策略
add()方法加入到容器中的指定区域
frame = new JFrame(“Frame Title”); button = new JButton(“Press Me”); frame.getContentPane().add(b, BorderLayout.SOUTH);
组件加入
如果在add()方法中没有指定将组件放到哪个区域,那么它
– align对齐方式的可选项, align的可取值有 FlowLayout.LEFT、FlowLayout.RIGHT和 FlowLayout.CENTER三种形式 – hgap和vgap,可以设定组件的水平间距和垂直 间距
程序7-5
• 程序7-5
2)BorderLayout布局策略
BorderLayout:将容器内的空间划分为东、 南、西、北、中五个方位,并指明组件所在 的方位,它是JWindow、JDialog、JFrame的 缺省布局方式;
– 每个组件都有一个getPreferredSize()方法, 布局管理器会调用这一法取得每个组件希望 的大小
FlowLayout构造方法
• public FlowLayout() • public FlowLayout(int align) • public FlowLayout(int align, int hgap, int vgap)
程序 public void7-4 go()
{ frame = new JFrame ("GUI example"); //创建一个JFrame实例 Container contentPane = frame.getContentPane(); //获取内容窗格 //为内容窗格设置FlowLayout布局管理器 frame.pack() new JFrame(“GUI example”) contentPane.setLayout(new FlowLayout()); frame.getContentPane() 这条语句通知框架 frame 设定一个适当 frame.setVisible(true) 这条语句的功能是创建 JFrame类的一个 这条语句获取 JFrame实例 的大小,以便能够以“紧缩”的形式包 实例。JFrame 是一个顶层级窗口,它带 这条语句的功能是使得框架 frame以及它所 b1 = new JButton("Press me"); //创建JButton实例 缺省的内容窗格,此后可以 容各个组件。为了做到这一点, frame 有标题框(标题由构造方法中的 String 包含的组件对用户可见,在此之前,框架和 b2 = new JButton("Don't press Me"); 修改它的布局管理器,并添 需要通知布局管理器,由布局管理器安 型参数“GUI example” 指定)并且可以 组件虽然已经创建好了,但是并没有显示出 加组件。 排每个组件的大小和位置。 来,只有调用了 setVisible(true) 方法后, FlowLayout()) 改变大小。需要注意的是,在刚刚创建 contentPane.setLayout(new contentPane.add(b1); //添加按钮 它们才变为可见。 时,JFrame的大小为0,并且不可见。 这条语句创建了一个FlowLayout型的布 contentPane.add(b2); new JButton(“Press Me”) 局管理器,并通过调用 setLayout()方法 这条语句的功能是创建 frame.pack(); 将该布局管理器指定给前面已经获得的 javax.swing.JButton 类的一个实例,该 JFrame 实例的缺省内容窗格。 frame.setVisible(true); 实例是窗口中的标准按钮(button), } 按钮上的标签由构造方法中String型参数 } “Press Me”指定。
Java中布局种类: Flowlayout(从上到下,从左到右依次摆放,每行均
居中,它是Panel、Applet的缺省布局);
BorderLayout(将容器内的空间划分为东、南、西、 CardLayout(卡片叠式布局):将组件象卡片一样
放置在容器中,在某一时刻只有一个组件可见
相关文档
最新文档