GUI Layout Managers - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

GUI Layout Managers

Description:

http://java.sun.com/reference/docs/index.html. http://java.sun.com/docs/books/tutorial/uiswing/layout/group.html. http://java.sun.com/j2se/1.5.0/docs/api/index.html ... – PowerPoint PPT presentation

Number of Views:151
Avg rating:3.0/5.0
Slides: 25
Provided by: george85
Category:

less

Transcript and Presenter's Notes

Title: GUI Layout Managers


1
GUI Layout Managers
  • Arkadiusz Edward Komenda

2
Outline
  • Components and Containers
  • Layout Managers
  • Flow Layout
  • Grid Layout
  • Border Layout
  • Nested Containers with Layouts
  • Overview of Advanced Layout Managers

3
Components and Containers
  • Components are building blocks of the visual
    aspect of the graphical user interface (GUI).
    Each GUI component has a characteristic
    appearance and behavior.
  • Components are divided into ones that can
    contain other components, containers, and the
    ones which may not, primitive components.

4
GUI component classes in AWT

5
Layout Managers
  • Each container has a layout manager, which
    controls the way the components are positioned in
    the container.
  • One of the advantages of using layout managers is
    that there is no need for absolute coordinates
    where each component is to be placed or the
    dimensions of the component. The layout manager
    automatically handles the calculation of these.
  • Programmer only specifies relative positions of
    the components within the container.

6
More Layout Managers
  • Whenever the dimensions of the container change
    (e.g. user resizes the window), layout manager
    recalculates the absolute coordinates of
    components for them to fit the new container
    size.
  • There are many different layout managers, this
    presentation describes the most popular ones.
  • Different layout managers can be used
    interchangeably and one inside the other.

7
Flow Layout
  • The Flow Layout manager arranges the components
    left-to-right, top-to-bottom in the order they
    were inserted into the container.
  • When the container is not wide enough to display
    all the components, the remaining components are
    placed in the next row, etc.
  • Each row is centered.

8
Flow Layout Examples

9
Flow Layout Constructors
  • FlowLayout(align, hgap, vgap)
  • align alignment used by the manager
  • hgap horizontal gaps between components
  • vgap vertical gaps between components
  • FlowLayout(align)
  • align alignment used by the manager
  • A default 5-unit horizontal and vertical gap.
  • FlowLayout()
  • A centered alignment and a default 5-unit
  • horizontal and vertical gap.

10
Flow Layout Alignment
  • The line alignment can be
  • FlowLayout.LEFT
  • FlowLayout.CENTER
  • FlowLayout.RIGHT
  • FlowLayout.LEADING
  • FlowLayout.TRAILING

11
Grid Layout
  • The Grid Layout manager lays out all the
    components in a rectangular grid. All the
    components have identical sizes, since the
    manager automatically stretches or compresses the
    components as to fill the entire space of the
    container.

12
Grid Layout Examples

13
Grid Layout Constructors
  • GridLayout(r, c, hgap, vgap)
  • r number of rows in the layout
  • c number of columns in the layout
  • hgap horizontal gaps between components
  • vgap vertical gaps between components
  • GridLayout(r, c)
  • r number of rows in the layout
  • c number of columns in the layout
  • No vertical or horizontal gaps.
  • GridLayout()
  • A single row and no vertical or horizontal gaps.

14
Grid Layout - Notes
  • Important constructor notes
  • Parameter r (number of rows) or c (number of
    columns) can be equal to 0, then the grid can
    have any number of rows, or columns,
    respectively, depending on the number of
    components in the container.
  • Both r and c cannot be made 0 at the same time.

15
Border Layout
  • The Border Layout manager arranges components
    into five regions North, South, East, West, and
    Center.
  • Components in the North and South are set to
    their natural heights and horizontally stretched
    to fill the entire width of the container.
  • Components in the East and West are set to their
    natural widths and stretched vertically to fill
    the entire width of the container.
  • The Center component fills the space left in the
    center of the container.

16
Border Layout Arrangement
  • If one or more of the components, except the
    Center component, are missing then the rest of
    the existing components are stretched to fill the
    remaining space in the container.

17
Border Layout Constructors
  • BorderLayout(hgap, vgap)
  • hgap horizontal gaps between components
  • vgap vertical gaps between components
  • BorderLayout()
  • No vertical or horizontal gaps.

18
Border Layout Constraints
  • The positional constraints are
  • FlowLayout.NORTH
  • FlowLayout.SOUTH
  • FlowLayout.EAST
  • FlowLayout.WEST
  • FlowLayout.CENTER

19
Nested Containers with Layouts
  • Each of the nested containers can have the same
    type or totally different type of a layout
    manager.
  • Outer Layout Border Layout
  • Inner Layouts
  • Border Layout
  • Flow Layout

20
Overview of Advanced Layout Managers
  • Box Layout Manager
  • The Swing packages include a general purpose
    layout manager named Box Layout manager. Box
    Layout can either stack its components on top of
    each other or place them in a row.
  • One big difference between Box Layout and many
    earlier layout managers is that Box Layout
    respects each component's maximum size and X/Y
    alignment.

21
Overview of Advanced Layout Managers
  • Card Layout Manager
  • The Card Layout manager helps you manage two or
    more components (usually JPanel instances) that
    share the same display space. When using Card
    Layout, you need to provide a way to let the user
    choose between the components.
  • It is similar to tabbed panes, but a tabbed pane
    provides its own GUI, so using a tabbed pane is
    simpler than using Card Layout.

22
Overview of Advanced Layout Managers
  • Conceptually, each component a Card Layout
    manages is like a playing card or trading card in
    a stack, where only the top card is visible at
    any time.
  • GridBag Layout Manager
  • GridBag Layout manager is one of the most
    flexible and complex layout managers the Java
    platform provides.
  • A GridBag Layout places components in a grid of
    rows and columns, allowing specified components
    to span multiple rows or columns.

23
Overview of Advanced Layout Managers
  • Not all columns or rows have to have the same
    dimensions.
  • GridBag Layout places components in cells in a
    grid, and then uses the components' preferred
    sizes to determine how big the cells should be.
  • Group Layout Manager
  • Group Layout works with the horizontal and
    vertical layouts separately. The layout is
    defined for each dimension independently.

24
References
  • Jia, Xiaoping. Object Oriented Software
    Development using Java- 2nd edition, Adison
    Wesley 2003
  • http//java.sun.com/reference/docs/index.html
  • http//java.sun.com/docs/books/tutorial/uiswing/la
    yout/group.html
  • http//java.sun.com/j2se/1.5.0/docs/api/index.html
Write a Comment
User Comments (0)
About PowerShow.com