+ All Categories
Home > Documents > Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout...

Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout...

Date post: 05-Jan-2016
Category:
Upload: hope-fisher
View: 224 times
Download: 1 times
Share this document with a friend
23
Layout Manager Summary
Transcript
Page 1: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

Layout Manager Summary

Page 2: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

2

Layout Managers

• BorderLayout• BoxLayout• CardLayout• FlowLayout• GridBagLayout• GridLayout• SpringLayout

Page 3: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

3

BorderLayout

• a BorderLayout has five areas. • These areas are specified by the BorderLayout

constants PAGE_START, PAGE_END, LINE_START, LINE_END, and CENTER. (Previously NORTH, SOUTH, EAST, WEST and CENTER)

Page 4: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

4

Page 5: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

5

BoxLayout

• The BoxLayout class puts components in a single row or column.

• It respects the components' requested maximum sizes and also lets you align components

Page 6: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

6

CardLayout

• The CardLayout class lets you implement an area that contains different components at different times.

• A CardLayout is often controlled by a combo box, with the state of the combo box determining which panel (group of components) the CardLayout displays.

Page 7: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

7

FlowLayout

• FlowLayout is the default layout manager for every JPanel.

• It simply lays out components in a single row, starting a new row if its container isn't sufficiently wide.

Page 8: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

8

Page 9: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

9

Page 10: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

10

GridBagLayout• GridBagLayout is a

sophisticated, flexible layout manager.

• It aligns components by placing them within a grid of cells, allowing some components to span more than one cell. The rows in the grid can have different heights, and grid columns can have different widths.

Page 11: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

11

GridLayout

• GridLayout simply makes a bunch of components equal in size and displays them in the requested number of rows and columns

Page 12: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

12

Page 13: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

13

Using Layout Managers

• A layout manager is an object that implements the LayoutManager interface and determines the size and position of the components within a container.– Setting the Layout Manager – Adding Components to a Container – Providing Size and Alignment Hints – Putting Space Between Components – Setting the Container's Orientation

Page 14: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

14

SpringLayout• SpringLayout is a flexible layout manager designed for use

by GUI builders. • It lets you specify precise relationships between the edges

of components under its control. • For example, you might define that the left edge of one

component is a certain distance (which can be dynamically calculated) from the right edge of a second component.

Page 15: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

15

Setting the Layout Manager• the only containers whose layout managers you need to

worry about are JPanels and content panes. • Each JPanel object is initialized to use a FlowLayout, unless

you specify differently when creating the JPanel. • Content panes use BorderLayout by default. • If you don't like the default layout manager that a panel or

content pane uses, you're free to change it to a different one.

• To set a panel's layout manager using the JPanel constructor. JPanel panel = new JPanel(new BorderLayout());

• After a container has been created, you can set its layout manager using the setLayout method. Container contentPane = frame.getContentPane();contentPane.setLayout(new FlowLayout());

Page 16: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

16

Adding Components to a Container• When you add components to a panel

or content pane, the arguments you specify to the add method depend on the layout manager that the panel or content pane is using.

• For example, BorderLayout requires that you specify the area to which the component should be addedpane.add(aComponent, BorderLayout.PAGE_START);

Page 17: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

17

Providing Size and Alignment hints• specifying one or more of the minimum, preferred, and

maximum sizes of the component. – setMinimumSize, setPreferredSize, and setMaximumSize. – Or you can create a subclass of the component that overrides

the appropriate getter methods — getMinimumSize, getPreferredSize, and getMaximumSize.

– Here is an example of making a component's maximum size unlimited: component.setMaximumSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE));

– Many layout managers don't pay attention to a component's requested maximum size. However, BoxLayout and SpringLayout do.

• You set alignment hints either by invoking the component's setAlignmentX and setAlignmentY methods, or by overriding the component's getAlignmentX and getAlignmentY methods.

• Although most layout managers ignore alignment hints, BoxLayout honors them.

Page 18: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

18

Putting Space Between Components• Three factors influence the amount of space

between visible components in a container: – The layout manager

• Some layout managers automatically put space between components; others don't. Some let you specify the amount of space between components.

– Invisible components • You can create lightweight components that perform no

painting, but that can take up space in the GUI. Often, you use invisible components in containers controlled by BoxLayout.

– Empty borders • No matter what the layout manager, you can affect the

apparent amount of space between components by adding empty borders to components, such as panels and labels.

Page 19: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

19

Setting the Container’s Orientation• The componentOrientation property provides a way of indicating that a

particular component should use something different from the default left-to-right, top-to-bottom orientation.

• To set a container's orientation, you can use either the Component-defined method setComponentOrientation or, to set the orientation on the container's children as well, applyComponentOrientation.

• The argument to either method can be a constant such as:– ComponentOrientation.RIGHT_TO_LEFT, – or it can be a call to the ComponentOrientation method

getOrientation(Locale). • For example, the following code causes all JComponents to be initialized

with an Arabic-language locale, and then sets the orientation of the content pane and all components inside it accordingly: JComponent.setDefaultLocale(new Locale("ar"));JFrame frame = new JFrame(); ... Container contentPane = frame.getContentPane(); contentPane.applyComponentOrientation( ComponentOrientation.getOrientat

ion(contentPane.getLocale())); • The standard layout managers that support component orientation are

FlowLayout, BorderLayout, BoxLayout, GridBagLayout, and GridLayout.

Page 20: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

20

Setting the Container’s Orientation

Default left-to-right

right-to-left

Page 21: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

21

Setting event (summary)

• See next page

Page 22: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

22

Page 23: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout.

23


Recommended