Open In App

Java AWT | SpringLayout Class

Improve
Improve
Like Article
Like
Save
Share
Report

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



Last Updated : 20 Aug, 2018
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads