Java Swing | ScrollPaneLayout Class

The layout manager used by JScrollPane. JScrollPaneLayout is based on nine components: a viewport, two scrollbars, a row header, a column header, and four “corner” components.

Constructor of the class:

  • ScrollPaneLayout(): It is used to Construct a new ScrollPanelLayout.

Commonly Used Methods:



  1. removeLayoutComponent(Component comp): Removes the specified component from the layout.
  2. getColumnHeader(): It returns the JViewport object that is the column header.
  3. getVerticalScrollBar(): Returns the JScrollBar object that handles the vertical scrolling.
  4. getHorizontalScrollBar(): Returns the JScrollBar object that handles the horizontal scrolling.
  5. addLayoutComponent(String st, Component c): Adds the specified component to the layout.
  6. getViewport(): Returns the JViewport object that displays the scrollable contents.
  7. getCorner(String key):It is used to returns the Component at the specified corner.

Below programs illustrate the use of ScrollPanelLayout class:

  1. The following program illustrates the use of ScrollPaneLayout by arranging several JLabel components in a JFrame, whose instance class is “Geeks“. We create one JScrollPane component named “scrollpane” and one JList components named “list“. We set the size and visibility of the frame by using setSize() and setVisible() method. The layout is set by using setLayout() method.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java Program to illustrate the
    // ScrollPaneLayout class
    import java.awt.BorderLayout;
    import javax.swing.JFrame;
    import javax.swing.JList;
    import javax.swing.JScrollPane;
      
    // create a class Geeks extending JFrame
    public class Geeks extends JFrame
      
    {
          
        // Declaration of objects of the 
        // JScrollPane class.
        JScrollPane scrollpane;
      
        // Constructor of Geeks class
        public Geeks()
        {
              
            // used to call super class 
            // variables and methods
            super("JScrollPane Demonstration");
      
            // Function to set size of JFrame.
            setSize(300, 200);
      
            // Function to set Default close
            // operation of JFrame.
            setDefaultCloseOperation(EXIT_ON_CLOSE);
      
            // to contain a string value
            String categories[] = {"Geeks", "Language", "Java",
                                   "Sudo Placement", "Python"
                                   "CS Subject", "Operating System",
                                   "Data Structure", "Algorithm"
                                   "PHP language", "JAVASCRIPT"
                                   "C Sharp" };
      
            // Creating Object of "JList" class
            JList list = new JList(categories);
      
            // Creating Object of 
            // "scrollpane" class
            scrollpane = new JScrollPane(list);
      
            // to get content pane
            getContentPane().add(scrollpane, BorderLayout.CENTER);
        }
      
        // Main Method
        public static void main(String args[])
        {
              
            // Creating Object of Geeks class.
            Geeks sl = new Geeks();
      
            // Function to set visibilty of JFrame.
            sl.setVisible(true);
        }
    }

    chevron_right

    
    

    Output:


  2. The following program illustrates the use of ScrollPaneLayout by arranging several JLabel components in a JFrame, whose instance class is named as “ScrollPanel”. We create one JScrollPane component named “scrollpane”. Also, JRadioButtonand ButtonGroup are created. We set the size and visibility of the frame by using setSize() and setVisible() method. The layout is set by using setLayout() method.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java Program to illustrate the 
    // ScrollPaneLayout class
    import java.awt.BorderLayout;
    import java.awt.GridLayout;
    import javax.swing.ButtonGroup;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.JScrollPane;
      
    // create a class ScrollPanel 
    // extending JFrame
    public class ScrollPanel extends JFrame {
      
        // Declaration of objects of the 
        // JScrollPane class
        JScrollPane scrollpane;
      
        // Constructor of ScrollPanel class
        public ScrollPanel()
        {
              
            // used to call super class 
            // variables and methods
            super("JScrollPane Demonstration");
      
            // Function to set size of JFrame.
            setSize(300, 200);
      
            // Function to set Default
            // close operation of JFrame.
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            init();
      
            // Function to set
            // visible of JFrame.
            setVisible(true);
        }
          
        // class init
        public void init()
        {
              
            // Declaration of objects
            // of JRadioButton class.
            JRadioButton form[][] = new JRadioButton[12][5];
      
            // to contain a string count
            String counts[] = {"", "1 star", "2 star"
                        "3 star", "4 star", "5 star"};
      
            // to contain a string value
            String categories[] = {"Geeks", "Language", "Java"
                                   "Sudo Placement", "Python"
                                   "CS Subject", "Operating System"
                                   "Data Structure", "Algorithm"
                                   "PHP language", "JAVASCRIPT"
                                   "C Sharp" };
      
            // Declaration of objects 
            // of the JPanel class.
            JPanel p = new JPanel();
      
            // Function to set size of JFrame.
            p.setSize(600, 400);
      
            // Function to set Layout of JFrame.
            p.setLayout(new GridLayout(13, 6, 10, 0));
      
            // for loop
            for (int row = 0; row < 13; row++) {
                  
                // Declaration of objects 
                // of ButtonGroup class
                ButtonGroup bg = new ButtonGroup();
      
                for (int col = 0; col < 6; col++) 
                {
                      
                    // If condition
                    if (row == 0) {
      
                        // add new Jlabel
                        p.add(new JLabel(counts[col]));
                    }
                    else {
                        // If condition
                        if (col == 0
                        {
      
                            // add new Jlabel
                            p.add(new JLabel(categories[row - 1]));
                        }
                          
                        else 
                        {
                            form[row - 1][col - 1] = new JRadioButton();
      
                            // add form in ButtonGroup
                            bg.add(form[row - 1][col - 1]);
      
                            // add form in JFrame
                            p.add(form[row - 1][col - 1]);
                        }
                    }
                }
            }
      
            // Declaration of objects
            // of scrollpane class.
            scrollpane = new JScrollPane(p);
      
            // to get content pane
            getContentPane().add(scrollpane, BorderLayout.CENTER);
        }
      
        // Main Method
        public static void main(String args[])
        {
            new ScrollPanel();
        }
    }

    chevron_right

    
    

    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/ScrollPaneLayout.html



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.