A SpringLayout class in AWT(Abstract Window Toolkit) laid out of the children to its associated container, according to a set of Layout constraints. Each constraint is represented by a Spring object which controls the vertical or horizontal distance between two component edges. The edges can belong to any child of the container, or to the container itself. By default, SpringLayout creates constraints that make their associated component have the minimum, preferred, and maximum and actual value.
Constructor:
- SpringLayout(): Used to constructs a new SpringLayout class.
Commonly Used Methods:
- void addLayoutComponent(Component com, Object cons): If constraints is an instance of SpringLayout.Constraints, associates the constraints with the specified component.
- getLayoutAlignmentX(Container c): Used to returns 0.5f (centered).
- getLayoutAlignmentY(Container c): Used to returns 0.5f (centered).
- getConstraint((String edgeName, Component c): Returns the spring controlling the distance between the specified edge of the component and the top or left edge of its parent.
- getConstraint(Component c): Returns the constraints for the specified component.
- layoutContainer(Container parent): Used to Lays out the specified container.
Below programs illustrate the SpringLayout class:
-
Program 1: Below program arranges the components in a JFrame. We create 1 JLabel components named “label” and create a 1 JTextField named “textfield” and create a 2 classes, one is JFrame class and another is SpringLayout class and then add them to the JFrame by the method add(). We set the visibility of the frame using setvisible() method. The layout is set by using setLayout() method.
// Java program to show Example of SpringLayout.
// in java. Importing different Package.
import
java.awt.Container;
import
javax.swing.JFrame;
import
javax.swing.JLabel;
import
javax.swing.JTextField;
import
javax.swing.SpringLayout;
// construct a class springdemo
public
class
Springdemo {
// It is used to create and show GUI
private
static
void
createAndShowGUI()
{
// Creating Object of "JFrame" class
JFrame frame =
new
JFrame(
"MySpringDemp"
);
// Function to set default
// close operation of JFrame.
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// to get content pane
Container contentPane = frame.getContentPane();
// Creating Object of "Springlayout" class
SpringLayout layout =
new
SpringLayout();
// to set content pane
contentPane.setLayout(layout);
// Initialization of object
// "label" of JLabel class.
JLabel label =
new
JLabel(
"Label: "
);
// Initialization of object
// "label" of JLabel class.
JTextField textField =
new
JTextField(
"Enter the text "
,
15
);
// to add content pane of JLabel
contentPane.add(label);
// to add content pane of JTextField
contentPane.add(textField);
// It is used to put the layout
// constraint in JFrame using springLayout class
layout.putConstraint(SpringLayout.WEST, label,
6
, SpringLayout.WEST, contentPane);
layout.putConstraint(SpringLayout.NORTH, label,
6
, SpringLayout.NORTH, contentPane);
layout.putConstraint(SpringLayout.WEST, textField,
6
, SpringLayout.EAST, label);
layout.putConstraint(SpringLayout.NORTH, textField,
6
, SpringLayout.NORTH, contentPane);
layout.putConstraint(SpringLayout.EAST, contentPane,
6
, SpringLayout.EAST, textField);
layout.putConstraint(SpringLayout.SOUTH, contentPane,
6
, SpringLayout.SOUTH, textField);
// Function to pack the JFrame.
frame.pack();
// Function to set visible status of JFrame.
frame.setVisible(
true
);
}
// Main Method
public
static
void
main(String[] args)
{
javax.swing.SwingUtilities.invokeLater(
new
Runnable()
{
// create a class
public
void
run()
{
// to create and show GUI
createAndShowGUI();
}
});
}
}
Output:
-
Program 2: Below program arranges the components in a JFrame. We create 1 class named “springlayout class” and create a 4 JButton components named “b1″, “b2”, “b3”, “b4”, “b5” and then add them to the JFrame by the method add(). We set the visibility of the frame by using the method setvisible(). The layout is set by setLayout() method.
// Java program to show Example of SpringLayout.
// in java. Importing different Package.
import
java.awt.*;
import
javax.swing.*;
// construct a class Springclassdemo
public
class
Springclassdemo {
// Main Method
public
static
void
main(String[] arguments)
{
// main window
// Function to set the default look
// and feel decorated status of JFrame.
JFrame.setDefaultLookAndFeelDecorated(
true
);
// Creating Object of "JFrame" class
JFrame frame =
new
JFrame(
"SpringLayoutExample Example"
);
// Function to set the default
// close operation status of JFrame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Function to set the
// size status of JFrame
frame.setSize(
300
,
200
);
// to get the content pane
Container content = frame.getContentPane();
// Creating Object of "SpringLayout" class
SpringLayout layout =
new
SpringLayout();
// to set the layout class
frame.setLayout(layout);
// Initialization of object
// "b1" of JButton class.
Component b1 =
new
JButton(
"GEEKS"
);
// Initialization of object
// "b2" of JButton class.
Component b2 =
new
JButton(
"GFG"
);
// Initialization of object
// "b3" of JButton class.
Component b3 =
new
JButton(
"JAVA"
);
// Initialization of object
// "b4" of JButton class.
Component b4 =
new
JButton(
"Sudo Placement"
);
// Adding the JButton "b1" on frame
frame.add(b1);
// Adding the JButton "b2" on frame
frame.add(b2);
// Adding the JButton "b3" on frame
frame.add(b3);
// Adding the JButton "b4" on frame
frame.add(b4);
// It is used to put the layout
// constraint in JFrame using
// springLayout class on b1 JButton
layout.putConstraint(SpringLayout.WEST, b1,
25
, SpringLayout.WEST, content);
layout.putConstraint(SpringLayout.NORTH, b1,
10
, SpringLayout.NORTH, content);
// It is used to put the layout
// constraint in JFrame using
// springLayout class on b2 JButton
layout.putConstraint(SpringLayout.WEST, b2,
50
, SpringLayout.WEST, content);
layout.putConstraint(SpringLayout.NORTH, b2,
10
, SpringLayout.SOUTH, b1);
// It is used to put the layout
// constraint in JFrame using
// springLayout class on b3 JButton
layout.putConstraint(SpringLayout.WEST, b3,
75
, SpringLayout.WEST, content);
layout.putConstraint(SpringLayout.NORTH, b3,
10
, SpringLayout.SOUTH, b2);
// It is used to put the layout
// constraint in JFrame using
// springLayout class on b4 JButton
layout.putConstraint(SpringLayout.WEST, b4,
15
, SpringLayout.EAST, b1);
layout.putConstraint(SpringLayout.NORTH, b4,
10
, SpringLayout.NORTH, content);
// Function to set the
// visible status of JFrame
frame.setVisible(
true
);
}
}
Output:
Note: The above programs might not run in an online IDE. Please use an offline compiler.
Reference: https://docs.oracle.com/javase/7/docs/api/javax/swing/SpringLayout.html