GUI——布局管理器
1.GUI之布局管理器
布局管理器
java语言中,提供了布局管理器类的对象可以管理
管理Component在Container中的布局,不必直接设置Component的位置和大小
每个Container都有一个布局管理器对象,当容器需要对某个组件进行定位或判断尺寸大小时,
就会调用其对应的布局管理器,调用Container的setLayout方法,改变其布局管理器对象。
AWT提供了五种布局管理器类
FlowLayout
BorderLayout
GridLayout
CardLayout
GridBagLayout
2.FlowLayout布局管理器(流式布局,顺序布局)
java.awt
Class FlowLayout
FlowLayout时Panel类的默认布局管理器
FlowLayout布局管理器对组件逐行定位,行内从左到右,一行排满后换行。
不改变组件的大小,按组件原始尺寸显示组件,可设置不同的组件间距,行距和对其方式。
FlowLayout布局管理器默认的对其方式时居中。
FlowLayout的构造方法
Constructor Summary(构造函数的总结)
Constructors(构造函数)
Constructor and Description(构造函数和描述)
FlowLayout()
Constructs a new FlowLayout with a centered alignment and a default 5-unit horizontal and vertical gap.
FlowLayout(int align)
Constructs a new FlowLayout with the specified alignment and a default 5-unit horizontal and vertical gap.
FlowLayout(int align, int hgap, int vgap)
Creates a new flow layout manager with the indicated alignment and the indicated horizontal and vertical gaps.
实例1:
/* 范例名称:FlowLayout 用法举例 * 源文件名称:TestFlowLayout.java * 要 点: * 1. 布局管理器的概念和作用 * 2. FlowLayout的性质及用法 */ import java.awt.*; public class TestFlowLayout { public static void main(String args[]) { Frame f = new Frame("Flow Layout"); Button button1 = new Button("Ok"); Button button2 = new Button("Open"); Button button3 = new Button("Close"); //new FlowLayout(FlowLayout.LEFT)设置Frame的布局,默认为居中,此次为左对齐 f.setLayout(new FlowLayout(FlowLayout.LEFT)); f.add(button1); f.add(button2); f.add(button3); f.setSize(100,100); f.setVisible(true); } }
实例2:
import java.awt.*; public class TestFlowLayout2 { public static void main(String args[]) { Frame f = new Frame("Java Frame"); //创建一个新的流布局管理器,该布局管理器具有指示对齐和指示的水平和垂直间隔。(对齐,水平,垂直) FlowLayout l = new FlowLayout(FlowLayout.CENTER, 20, 40); //为Frame设置布局方式 f.setLayout(l); //设置位置 f.setLocation(300,400); //设置大小 f.setSize(300,200); 设置背景色 f.setBackground(new Color(204,204,255)); for(int i = 1; i<=7; i++){ f.add(new Button("BUTTON")); } f.setVisible(true); } }
3.BorderLayout布局管理器(边框布局,边界布局,边界布局管理器)
java.awt
Class BorderLayout
BorderLayout时Frame的默认布局管理器,
BorderLayout将整个容器的布局划分成东西南北中五个区域,组件只能被添加到指定区域。
东EAST
西WEST
南SOUTH
北NOUTH
中CENTER
不指定组件的加入部位,则默认加入到CENTER区。
每个区域只能加入一个组件,如加入多个,先前加入的会被覆盖。
BorderLayout布局,容器尺寸缩放原则
南,北两个区域在水平方向缩放
东,西两个区域在垂直方向缩放
中部可在两个方向上缩放
实例3:
/* 范例名称:BorderLayout应用举例 * 源文件名称:TestBorderLayout.java * 要 点:FlowLayout布局管理器的性质及用法 */ import java.awt.*; public class TestBorderLayout { public static void main(String args[]) { Frame f; f = new Frame("Border Layout"); Button bn = new Button("BN"); Button bs = new Button("BS"); Button bw = new Button("BW"); Button be = new Button("BE"); Button bc = new Button("BC"); f.add(bn, "North"); f.add(bs, "South"); f.add(bw, "West"); f.add(be, "East"); f.add(bc, "Center"); // 也可使用下述语句,推荐使用下面这种形式,不容易出错 /* f.add(bn, BorderLayout.NORTH); f.add(bs, BorderLayout.SOUTH); f.add(bw, BorderLayout.WEST); f.add(be, BorderLayout.EAST); f.add(bc, BorderLayout.CENTER); */ f.setSize(200,200); f.setVisible(true); } }
4.GridLayout布局管理器(网格布局 )
java.awt
Class GridLayout
GridLayout布局管理器将空间划分成规则的矩形网格,
每个单元格区域大小相等。
组件被添加到每个单元格中,先从左到有填满一行后换行。再从上到下。
在GridLayout构造方法中指定分割的行数和列数。
如:
GridLayout(3,4);//三行四列
实例4:
/* 范例名称:GridLayout应用举例 * 源文件名称:TestGridLayout * 要 点:GridLayout布局管理器的性质及用法 */ import java.awt.*; public class TestGridLayout { public static void main(String args[]) { Frame f = new Frame("GridLayout Example"); Button b1 = new Button("b1"); Button b2 = new Button("b2"); Button b3 = new Button("b3"); Button b4 = new Button("b4"); Button b5 = new Button("b5"); Button b6 = new Button("b6"); f.setLayout (new GridLayout(3,2)); f.add(b1); f.add(b2); f.add(b3); f.add(b4); f.add(b5); f.add(b6); //pack();打包, f.pack(); f.setVisible(true); } }
5.测试练习
用FlowLayout,BorderLayout,GridLayout来实现较为复杂的布局。
实例5:
import java.awt.*; public class TenButtons { public static void main(String args[]) { Frame f = new Frame("Java Frame"); //两行一列 f.setLayout(new GridLayout(2,1)); f.setLocation(300,400); f.setSize(300,200); f.setBackground(new Color(204,204,255)); Panel p1 = new Panel(new BorderLayout()); Panel p2 = new Panel(new BorderLayout()); Panel p11 = new Panel(new GridLayout(2,1)); Panel p21 = new Panel(new GridLayout(2,2)); p1.add(new Button("BUTTON"),BorderLayout.WEST); p1.add(new Button("BUTTON"),BorderLayout.EAST); p11.add(new Button("BUTTON")); p11.add(new Button("BUTTON")); p1.add(p11,BorderLayout.CENTER); p2.add(new Button("BUTTON"),BorderLayout.WEST); p2.add(new Button("BUTTON"),BorderLayout.EAST); for(int i =1;i<=4;i++) {p21.add(new Button("BUTTON"));} p2.add(p21,BorderLayout.CENTER); f.add(p1); f.add(p2); f.setVisible(true); } }
相关推荐
【标题】"第七个范例——布局之LayoutContainer"是一个关于软件开发中界面设计的讨论,特别是关注如何使用布局管理器来组织用户界面元素。在软件开发中,尤其是在图形用户界面(GUI)的设计中,LayoutContainer是...
以上内容详细介绍了如何使用Tkinter来创建基本的GUI应用程序,包括窗口的基本配置、常见控件的使用以及布局管理器的应用。希望这些信息能够帮助您更好地理解Tkinter的基础知识,并在实际项目中灵活运用。
【标题】"第九个范例——布局之StackContainer"指的是在软件开发中,特别是图形用户界面(GUI)设计中的一种布局管理方式。StackContainer是一种布局容器,它将多个组件按照栈的方式进行排列,通常用于展示有限数量...
标题中的“第六个范例——布局之ContentPane”指的是一个编程示例,可能是一个教程或案例研究,关注于软件用户界面(UI)设计中的容器管理器——ContentPane。在Java Swing或JavaFX等图形用户界面(GUI)框架中,...
同时,理解布局管理器如GridBagLayout和BoxLayout,用于实现控件的自动排列。 2. **回调函数**:回调函数是MATLAB GUI的核心,当用户与GUI交互时,如点击按钮或改变滑块值,MATLAB会调用对应的回调函数执行相应的...
Java Swing 是Java平台上用于构建图形用户界面(GUI)的一个组件库,它提供了丰富的控件和强大的布局管理器来创建复杂的窗口应用程序。在这个实验中,我们将通过Swing包来实现一个简单的计算器界面。 实验主要涉及...
### GUI编程技术——布局管理详解 #### 一、引言 在GUI编程中,布局管理是非常重要的一个环节,它能够帮助我们有效地组织界面元素,使应用程序的用户界面既美观又实用。本文档将详细介绍几种常用的布局管理器,...
2. **布局管理器**: PyQt的布局管理器负责自动调整窗口小部件的位置和大小,以适应不同的屏幕尺寸和分辨率。常见的布局有网格布局(QGridLayout)、流式布局(QVBoxLayout/QHBoxLayout)和栈式布局(QStackedLayout...
而布局管理器,如FlowLayout、GridLayout、BorderLayout和GridBagLayout,负责决定组件在窗口中的排列方式。记忆测试游戏可能使用GridLayout来创建整齐的卡片网格。 4. **卡片组件**:卡片可以由`JButton`或自定义...
在GUI设计中,"untitled.fig"文件存储了界面布局的所有信息,包括控件的位置、大小、颜色等。使用`deploytool`,可以将MATLAB GUI编译成独立的可执行文件,这就是"untitled.exe"。这个可执行文件可以在没有MATLAB...
在Java GUI编程中,布局管理器是用于自动安排组件在容器中的位置和大小的重要工具。`BorderLayout`是Java Swing中的一种基本布局管理器,它将容器分为五个区域:北(North)、南(South)、东(East)、西(West)和...
#### 一、GUI新手之——教你读懂GUI的M文件 **知识点:** - **M文件结构:** GUI 的 M 文件通常包含多个部分,如初始化函数、创建用户界面元素的函数、回调函数等。 - **回调函数:** 回调函数用于响应用户界面上...
这个“matlab GUI课程设计——简易计算器”项目旨在教授学生如何利用MATLAB GUI实现基本的四则运算,为初学者提供了一个很好的实践平台。 首先,我们需要理解MATLAB GUI的基本架构。在GUI中,我们通常会有一个`.fig...
5. **GUI布局与控件**:资源管理器通常包含树视图(显示文件夹结构)和列表视图(显示文件)。MFC提供CTreeCtrl和CListCtrl类来处理这些控件。开发者需要理解如何添加、删除和更新控件中的项。 6. **注释**:描述中...
总结来说,"GUI设计插件——Visual Editor"是一个强大的工具,结合VE-SDK、VE-runtime、GEF-runtime等组件,为开发者提供了便捷的GUI设计和开发环境,使得创建高质量的图形用户界面变得更加高效和简单。通过深入理解...
例如,第10章可能介绍了基础的GUI布局和控件使用,第13章可能是关于颜色管理和图像处理,第22章可能涉及高级的动画效果或触摸屏支持。 4. **章节概览**: - **第10章**:可能涵盖GUI的基础元素,如窗口、控件和...
数据库课程设计——图书管理系统是一项实践性强、涵盖多技术领域的项目,旨在帮助学生深入理解数据库管理和Web应用开发。在这个项目中,我们主要会涉及到以下几个关键知识点: 1. **SQL Server 2005**: 这是一个...