`
mouer
  • 浏览: 101989 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java Swing LayoutManager

    博客分类:
  • J2SE
阅读更多
  1. BorderLayout

  2. FlowLayout

  3. GridLayout

  4. GridBagLayout

  5. CardLayout

  6. BoxLayout


    1.BorderLayout

    java.lang.Object

    --java.awt.BorderLayout

    将版面划分成东、西、南、北、中五个区域,将添加的组件按指定位置放置。

    • BorderLayout.EAST
    • BorderLayout.WEST
    • BorderLayout.SOUTH
    • BorderLayout.NORTH
    • BorderLayout.CENTER

    构造函数:

    BorderLayout()

    建立组件间无间距的BorderLayout

    BorderLayout(int hgap,int vgap)

    建立组件间水平间距为hgap,垂直间距为vgap的BorderLayout

    例一:

    运行结果:



     

    在上例代码的第13,14行之间插入以下代码

    f.setLayout(newBorderLayout(10,10));

    运行结果:



     


    2.FlowLayout

    java.lang.Object

    --java.awt.FlowLayout

    组件按从左到右而后从上到下的顺序依次排列,一行不能放完则折到下一行。

    构造函数

    FlowLayout()

    建立一个默认为居中对齐,组件彼此有5单位的水平与垂直间距的FlowLayout

    FlowLayout(int align)

    建立一个可设置排列方式且组件彼此有5单位的水平与垂直间距的FlowLayout

    FlowLayout(int align,int hgap,int vgap)

    建立一个可设置排列方式与组件间距的FlowLayout

    例二:

    运行结果:



     


    3.GridLayout

    java.lang.Object

    --java.awt.GridLayout

    矩形网格形式对容器的组件进行布置

    构造函数

    GridLayout()

    建立一个默认为一行一列的GridLayout

    GridLayout(int rows,int cols)

    建立一个指定行(rows)和列(cols)的GridLayout

    GridLayout(int rows,int cols,int hgap,int vgap)

    建立一个指定行(rows)和列(cols),且组件间水平间距为hgap、垂直间距为vgap的GridLayout

    例三:

    运行结果:



     


    4.GridBagLayout

    java.lang.Object

    --java.awt.GridBagLayout

    GridBagLayout以表格形式布置容器内的组件,将每个组件放置在每个单元格内,而一个单元格可以跨越多个单元格合并成一个单元格,即多个单元格可以组合成一个单元格,从而实现组件的自由布局。

    构造函数

    GridBagLayout()

    建立一个默认的GridBagLayout

    每一个单元格都有各自的属性,而这些属性由GridBagConstrainsts类的成员变量来定义,且GridBagConstriaints中的所有成员变量都是public的。

    java.lang.Object

    --java.awt.GridBagConstratints

    构造函数:

    GridBagConstraints()

    建立一个默认的GridBagConstraints

    GridBagConstraints(intgridx,int gridy,int gridwidth,int gridheight,double weightx,double weighty,int anchor,int fill,Insets insets,int ipadx,int ipady)

    建立一个指定其参数值的GridBagConstraints

    GridBagConstraints的成员变量:

    • int gridx
    • int gridy
    • int gridwidth
    • int gridheight
    • double weightx
    • double weighty
    • int anchor
    • int fill
    • Insets insets
    • int ipadx
    • int ipady

    gridx,gridy:设置组件所处行与列的起始坐标。例如gridx=0,gridy=0表示将组件放置在0行0列单元格内。

    gridwidth,gridheight:设置组件横向与纵向的单元格跨越个数。

    可以通过GridBagConstraints的RELETIVE,和REMAINDER来进行指定,它的用法是:

    当把gridx值设置为 GridBagConstriants.RELETIVE时,所添加的组件将被放置在前一个组件的右侧。同理,对gridy 值设置为GridBagConstraints.RELETIVE时,所添加的组件将被放置在前一个组件的下方,(这是一种根据前一个组件而决定当前组 件的相对放置方式)

    对gridweight和gridheight也 可以应用GridBagConstraints的REMAINDER方式,创建的组件会从创建的起点位置 开始一直延伸到容器所能允许的界限为止。该功能使得你可以创建跨越某些行或列的组件,从而改变相应方向上组件的数目,即使其后在布局的其他地方添加额外的 组件也是如此。

    weightx,weighty:设置窗口变大时的缩放比例。

    anchor:设置组件在单元格中的对齐方式。由以下常量来定义

    GridBagConstraints.CENTER

    GridBagConstraints.EAST

    GridBagConstraints.WEST

    GridBagConstraints.SOUTH

    GridBagConstraints.NORTH

    GridBagConstraints.SOUTHEAST

    GrisBagConstraints.SOUTHWEST

    GridBagConstraints.NORTHEAST

    GridBagConstraints.NORTHWEST

    fill:当某个组件未能填满单元格时,可由此属性设置横向、纵向或双向填满。由以下常量来定义

    GridBagConstraints.NONE

    GridBagConstraints.HORIZONTAL

    GridBagConstraints.VERTICAL

    GridBagConstraints.BOTH

    insets:设置单元格的间距。

    java.lang.Object

    --java.awt.Insets

    Insets(int top,int left,int bottom,int right)

    ipadx,ipady:将单元格内的组件的最小尺寸横向或纵向扩大。若一个组件的尺寸为30*10像素,ipadx=2,ipady=3,则单元格内的组件最小尺寸为34*16像素

    例四:

    运行结果:



     

    将窗口变大后的效果:



     


    5.CardLayout

    java.lang.Object

    --java.awt.CardLayout

    以层叠的方式布置组件,如同很多张卡片叠在一起,从而只能看到最上面的那一张卡片。

    构造函数

    CardLayout()

    建立一个无间距的CardLayout

    CardLayout(int hgap,int vgap)

    建立一个水平间距为hgap、垂直间距为vgap的CardLayout

    例五:

    运行结果:



     

    按下Change按钮后的结果:



     


    6.BoxLayout

    java.lang.Object

    --javax.swing.BoxLayout

    以嵌套式盒子来管里容器的布局,通过将组件放入水平或垂直形盒子以多层嵌套的方式进行布局。

    构造函数

    BoxLayout(Container target,int axis)

    建立一个水平或垂直的BoxLayout,BoxLayout提供两个常数X_AXIS和Y_AXIS来表示水平或垂直排列。

    说到BoxLayout,就不得不提到Box这个Container,Box这个Container默认的Layout为BoxLayout,而它只能使用这个Layout,否则编译时会有Error产生。

    java.lang.Object

    --javax.swing.Box

    Box有水平的和垂直的两种形式。

    构造函数

    Box(int axis)

    建立一个Box Container(容器),并指定组件的排列方式,通过使用BoxLayout提供的两个常数X_AXIS和Y_AXIS来指定。

    方法

    public static Box createHorizontalBox()

    构造一个水平排列的Box组件。

    运行结果:



     

    public static Component createHorizontalGlue()

    构造一个Glue组件可向水平方向延伸。

    在上例17,18行间插入以下代码

    box.add(Box.createHorizontalGlue());

    运行结果:



     

    将窗口变大后的效果:



     

    public static Component createHorizontalStrut(int width)

    构造一个水平指定宽度的Strut组件。

    将上例代码改成以下代码

    box.add(Box.createHorizontalStrut(50));

    运行结果:



     

    public static Component createRigidArea(Dimension d)

    构造一个指定长宽的二维Rigid组件。

    将上例代码改成以下代码

    box.add(Box.createRigidArea(newDimension(50,50)));
    运行结果:



     

    public static Box createVerticalBox()

    构造一个垂直排列的Box组件。

    public static Component createVerticalGlue()

    构造一个垂直的Glue组件。

    public static Component createVerticalStrut(int height)

    构造一个垂直的Strut组件。

    public static Component createGlue()

    构造一个Glue组件可向水平方向延伸。

    Box.Fillter

    Fillter是Box的inner class(内部类),它的功能与Rigid相似,都可以指定长宽的大小限制,且Fillter可以指定最大、较佳、最小的长宽大小。

  • 大小: 21.3 KB
  • 大小: 24.8 KB
  • 大小: 16.8 KB
  • 大小: 9.5 KB
  • 大小: 8.6 KB
  • 大小: 16.4 KB
  • 大小: 13.6 KB
  • 大小: 13.8 KB
  • 大小: 5.5 KB
  • 大小: 5.3 KB
  • 大小: 9.1 KB
  • 大小: 8.8 KB
  • 大小: 6 KB
分享到:
评论

相关推荐

    Java Swing - 常识篇 之 LayoutManager

    Java Swing是Java GUI编程的重要库,它提供了丰富的组件和功能,让开发者能够创建桌面应用程序。在Swing中,布局管理器(LayoutManager)扮演着至关重要的角色,它负责控制组件在容器中的排列方式和大小。本篇文章将...

    java swing漂亮界面(超酷) javaswing教程

    文档"javaswing教程.doc"应该包含了详细的步骤、实例代码以及最佳实践,帮助你深入理解和掌握Java Swing的界面设计技巧。 总之,Java Swing不仅是一个强大的工具集,也是开发者实现桌面应用创新设计的关键。通过这...

    JavaSwingLayout

    ### Java Swing LayoutManager 的应用与布局管理器比较 #### 前言 Java Swing 是一个用于构建图形用户界面 (GUI) 的丰富库,它作为 AWT 的替代品被设计为完全由 Java 编写,从而提供了更多的灵活性和跨平台兼容性。...

    Java Swing - 常识篇 之 LayoutManager 03

    本篇文章将深入探讨Java Swing中的LayoutManager,并以实际案例进行解析。 在Swing中,每个容器(如JFrame、JPanel等)都有一个内置的LayoutManager,它决定了容器内组件的布局。默认的布局管理器可能并不符合所有...

    javaswing组件大全.pdf

    BorderLayout 是 Java Swing 中的一个布局管理器,继承自 java.awt.LayoutManager 类。BorderLayout 提供了一个基本的布局管理,可以用来布局组件。在上面的代码中,我们可以看到 BorderLayout 的使用,实现了一个...

    javaswing详解

    Java Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分。这个工具包提供了一系列组件,用于创建桌面应用程序,包括按钮、文本框、滚动面板、菜单等。本篇文章将深入...

    Java Swing 组件全演示

    布局管理器(LayoutManager)是Swing中控制组件在容器内排列的重要工具。不同的布局管理器有不同的排列策略,如FlowLayout(流式布局)、BorderLayout(边界布局)、GridLayout(网格布局)和GridBagLayout(网格包...

    java swing 工具箱

    布局管理器(LayoutManager)是Swing中用于控制组件在容器内排列的重要工具,如FlowLayout、BorderLayout、GridLayout和GridBagLayout等。 事件处理是Swing应用中不可或缺的部分。Swing使用事件监听器(Event...

    java swing实时时钟

    布局管理可能使用了Swing中的`LayoutManager`,例如`FlowLayout`或`BorderLayout`,它们决定了窗口内组件的排列方式。 `src`目录下包含了项目的源代码,可能包含`Clock.java`或其他相关类。`images`目录可能包含了...

    深入浅出Java Swing程序设计_11394260.rar

    Java Swing是Java GUI(图形用户界面)开发的重要库,它属于Java Foundation Classes (JFC)的一部分,用于构建桌面应用程序。本资源"深入浅出Java Swing程序设计_11394260.rar"显然是一个关于Java Swing编程的详细...

    java swing(影印版)

    Java Swing 是Java GUI编程的重要部分,它提供了丰富的组件和功能,使得开发者能够创建美观且功能齐全的桌面应用程序。本资源“java swing(影印版)”是一部针对Java Swing的学习教材,旨在帮助学习者掌握Swing的...

    java swing LayerTest

    Java Swing 是Java GUI(图形用户界面)开发的一个重要库,它是Java AWT(抽象窗口工具包)的扩展,提供了更多丰富的组件和功能。在Swing中,`JPanel`是常用的一种容器组件,用于组合其他组件,实现复杂的用户界面。...

    java swing 外企内部培训资料

    Java Swing 是Java GUI(图形用户界面)开发的重要组成部分,它是由Sun Microsystems开发的,作为Abstract Window Toolkit (AWT) 的增强版本。AWT是Java早期提供的GUI库,它依赖于本地系统来提供组件和功能,因此在...

    深入浅出Java Swing程式设计.rar

    Java Swing是Java GUI(图形用户界面)开发的重要库,它基于Java AWT(Abstract Window Toolkit)并提供了更丰富、更可定制的组件和事件处理机制。本教程将深入探讨Java Swing程序设计,帮助开发者掌握创建现代、...

    Java swing小游戏,纯练手.zip

    此外,Swing应用程序通常会使用布局管理器(LayoutManager)来组织组件的位置和大小。常见的布局管理器有FlowLayout、BorderLayout、GridLayout和BoxLayout等,每个都有其特定的布局策略。开发者可以根据游戏界面的...

    精通Java Swing程序设计.rar

    Java Swing是Java GUI(图形用户界面)编程的重要组成部分,它基于Java Foundation Classes (JFC) 平台,提供了丰富的组件库来创建桌面应用程序。在"精通Java Swing程序设计"这个资源中,我们可以深入学习如何利用...

    java swing

    Java Swing 是Java GUI(图形用户界面)开发的一个重要库,它是Java Foundation Classes (JFC) 的一部分。在Java中,Swing提供了丰富的组件集,用于创建功能强大的桌面应用程序。Swing设计的目标是提供一个轻量级、...

Global site tag (gtag.js) - Google Analytics