layout manager summary. 2 layout managers borderlayout boxlayout cardlayout flowlayout gridbaglayout...
TRANSCRIPT
![Page 1: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/1.jpg)
Layout Manager Summary
![Page 2: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/4.jpg)
4
![Page 5: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/8.jpg)
8
![Page 9: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/9.jpg)
9
![Page 10: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/12.jpg)
12
![Page 13: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/21.jpg)
21
Setting event (summary)
• See next page
![Page 22: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/22.jpg)
22
![Page 23: Layout Manager Summary. 2 Layout Managers BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout SpringLayout](https://reader035.vdocuments.site/reader035/viewer/2022070403/56649f2a5503460f94c44df3/html5/thumbnails/23.jpg)
23