
- SWING Tutorial
- SWING - Home
- SWING - Overview
- SWING - Environment
- SWING - Controls
- SWING - Event Handling
- SWING - Event Classes
- SWING - Event Listeners
- SWING - Event Adapters
- SWING - Layouts
- SWING - Menu
- SWING - Containers
- SWING Useful Resources
- SWING - Quick Guide
- SWING - Useful Resources
- SWING - Discussion
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
SWING - GroupLayout Class
Introduction
The class GroupLayout hierarchically groups the components in order to position them in a Container.
Class Declaration
Following is the declaration for javax.swing.GroupLayout class −
public class GroupLayout extends Object implements LayoutManager2
Field
Following are the fields for javax.swing.GroupLayout class −
static int DEFAULT_SIZE − Indicates the size from the component or the gap should be used for a particular range value.
static int PREFERRED_SIZE − Indicates the preferred size from the component or the gap should be used for a particular range value.
Class Constructors
Sr.No. | Constructor & Description |
---|---|
1 |
GroupLayout(Container host) Creates a GroupLayout for the specified Container. |
Class Methods
Sr.No. | Method & Description |
---|---|
1 |
void addLayoutComponent(Component component, Object constraints) Notification that a Component has been added to the parent container. |
2 |
void addLayoutComponent(String name, Component component) Notification that a Component has been added to the parent container. |
3 |
GroupLayout.ParallelGroup createBaselineGroup(boolean resizable, boolean anchorBaselineToTop) Creates and returns a ParallelGroup that aligns it's elements along the baseline. |
4 |
GroupLayout.ParallelGroup createParallelGroup() Creates and returns a ParallelGroup with an alignment of Alignment.LEADING. |
5 |
GroupLayout.ParallelGroup createParallelGroup(GroupLayout.Alignment alignment) Creates and returns a ParallelGroup with the specified alignment. |
6 |
GroupLayout.ParallelGroup createParallelGroup(GroupLayout.Alignment alignment, boolean resizable) Creates and returns a ParallelGroup with the specified alignment and resize behavior. |
7 |
GroupLayout.SequentialGroup createSequentialGroup() Creates and returns a SequentialGroup. |
8 |
boolean getAutoCreateContainerGaps() Returns true if the gaps between the container and the components that border the container are automatically created. |
9 |
boolean getAutoCreateGaps() Returns true if the gaps between the components are automatically created. |
10 |
boolean getHonorsVisibility() Returns whether the component visiblity is considered when sizing and positioning the components. |
11 |
float getLayoutAlignmentX(Container parent) Returns the alignment along the x axis. |
12 |
float getLayoutAlignmentY(Container parent) Returns the alignment along the y axis. |
13 |
LayoutStyle getLayoutStyle() Returns the LayoutStyle used for calculating the preferred gap between the components. |
14 |
void invalidateLayout(Container parent) Invalidates the layout, indicating that if the layout manager has cached information it should be discarded. |
15 |
void layoutContainer(Container parent) Lays out the specified container. |
16 |
void linkSize(Component... components) Forces the specified components to have the same size regardless of their preferred, minimum, or maximum sizes. |
17 |
void linkSize(int axis, Component... components) Forces the specified components to have the same size along the specified axis regardless of their preferred, minimum, or maximum sizes. |
18 |
Dimension maximumLayoutSize(Container parent) Returns the maximum size for the specified container. |
19 |
Dimension minimumLayoutSize(Container parent) Returns the minimum size for the specified container. |
20 |
Dimension preferredLayoutSize(Container parent) Returns the preferred size for the specified container. |
21 |
void removeLayoutComponent(Component component) Notifies that a Component has been removed from the parent container. |
22 |
void replace(Component existingComponent, Component newComponent) Replaces an existing component with a new one. |
23 |
void setAutoCreateContainerGaps(boolean autoCreateContainerPadding) Sets whether a gap between the container and the components that touch the border of the container should automatically be created. |
24 |
void setAutoCreateGaps(boolean autoCreatePadding) Sets whether a gap between the components should automatically be created. |
25 |
void setHonorsVisibility(boolean honorsVisibility) Sets whether the component visiblity is considered when sizing and positioning the components. |
26 |
void setHonorsVisibility(Component component, Boolean honorsVisibility) Sets whether the component's visiblity is considered for sizing and positioning. |
27 |
void setHorizontalGroup(GroupLayout.Group group) Sets the Group that positions and sizes the components along the horizontal axis. |
28 |
void setLayoutStyle(LayoutStyle layoutStyle) Sets the LayoutStyle used to calculate the preferred gaps between the components. |
29 |
void setVerticalGroup(GroupLayout.Group group) Sets the Group that positions and sizes the components along the vertical axis. |
30 |
String toString() Returns a string representation of this GroupLayout. |
Methods Inherited
This class inherits methods from the following class −
- java.lang.Object
GroupLayout Example
Create the following Java program using any editor of your choice in say D:/ > SWING > com > tutorialspoint > gui >
SwingLayoutDemo.java
package com.tutorialspoint.gui; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class SwingLayoutDemo { private JFrame mainFrame; private JLabel headerLabel; private JLabel statusLabel; private JPanel controlPanel; private JLabel msglabel; public SwingLayoutDemo(){ prepareGUI(); } public static void main(String[] args){ SwingLayoutDemo swingLayoutDemo = new SwingLayoutDemo(); swingLayoutDemo.showGroupLayoutDemo(); } private void prepareGUI(){ mainFrame = new JFrame("Java SWING Examples"); mainFrame.setSize(400,400); mainFrame.setLayout(new GridLayout(3, 1)); headerLabel = new JLabel("",JLabel.CENTER ); statusLabel = new JLabel("",JLabel.CENTER); statusLabel.setSize(350,100); mainFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent){ System.exit(0); } }); controlPanel = new JPanel(); controlPanel.setLayout(new FlowLayout()); mainFrame.add(headerLabel); mainFrame.add(controlPanel); mainFrame.add(statusLabel); mainFrame.setVisible(true); } private void showGroupLayoutDemo(){ headerLabel.setText("Layout in action: GroupLayout"); JPanel panel = new JPanel(); // panel.setBackground(Color.darkGray); panel.setSize(200,200); GroupLayout layout = new GroupLayout(panel); layout.setAutoCreateGaps(true); layout.setAutoCreateContainerGaps(true); JButton btn1 = new JButton("Button 1"); JButton btn2 = new JButton("Button 2"); JButton btn3 = new JButton("Button 3"); layout.setHorizontalGroup(layout.createSequentialGroup() .addComponent(btn1) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup( GroupLayout.Alignment.LEADING) .addComponent(btn2) .addComponent(btn3)))); layout.setVerticalGroup(layout.createSequentialGroup() .addComponent(btn1) .addComponent(btn2) .addComponent(btn3)); panel.setLayout(layout); controlPanel.add(panel); mainFrame.setVisible(true); } }
Compile the program using the command prompt. Go to D:/ > SWING and type the following command.
D:\SWING>javac com\tutorialspoint\gui\SwingLayoutDemo.java
If no error occurs, it means the compilation is successful. Run the program using the following command.
D:\SWING>java com.tutorialspoint.gui.SwingLayoutDemo
Verify the following output.
