Java Swing – JPanel With Examples

10 Nov, 2021
JPanel, a part of the Java Swing package, is a container that can store a group of components. The main task of JPanel is to organize components, various layouts can be set in JPanel which provide better organization of components, however, it does not have a title bar.
JPanel(): creates a new panel with a flow layoutJPanel(LayoutManager l): creates a new JPanel with specified layoutManagerJPanel(boolean isDoubleBuffered): creates a new JPanel with a specified buffering strategyJPanel(LayoutManager l, boolean isDoubleBuffered): creates a new JPanel with specified layoutManager and a specified buffering strategy
JPanel(): creates a new panel with a flow layout
JPanel(LayoutManager l): creates a new JPanel with specified layoutManager
JPanel(boolean isDoubleBuffered): creates a new JPanel with a specified buffering strategy
JPanel(LayoutManager l, boolean isDoubleBuffered): creates a new JPanel with specified layoutManager and a specified buffering strategy
add(Component c): Adds a component to a specified containersetLayout(LayoutManager l): sets the layout of the container to the specified layout managerupdateUI(): resets the UI property with a value from the current look and feel.setUI(PanelUI ui): sets the look and feel of an object that renders this component.getUI(): returns the look and feel object that renders this component.paramString(): returns a string representation of this JPanel.getUIClassID(): returns the name of the Look and feel class that renders this component.getAccessibleContext(): gets the AccessibleContext associated with this JPanel.
add(Component c): Adds a component to a specified container
setLayout(LayoutManager l): sets the layout of the container to the specified layout manager
updateUI(): resets the UI property with a value from the current look and feel.
setUI(PanelUI ui): sets the look and feel of an object that renders this component.
getUI(): returns the look and feel object that renders this component.
paramString(): returns a string representation of this JPanel.
getUIClassID(): returns the name of the Look and feel class that renders this component.
getAccessibleContext(): gets the AccessibleContext associated with this JPanel.
Let us take a sample program in order to illustrate the use of JPanel class by appending sequential execution snapshots of outputs justifying the below program sets as follows:
Example:
Java
// Java Program to Create a Simple JPanel// and Adding Components to it  // Importing required classesimport java.awt.*;import java.awt.event.*;import javax.swing.*;  // Class 1// Helper class extending JFrame classclass solution extends JFrame {      // JFrame    static JFrame f;      // JButton    static JButton b, b1, b2;      // Label to display text    static JLabel l;      // Main class    public static void main(String[] args)    {        // Creating a new frame to store text field and        // button        f = new JFrame("panel");          // Creating a label to display text        l = new JLabel("panel label");          // Creating a new buttons        b = new JButton("button1");        b1 = new JButton("button2");        b2 = new JButton("button3");          // Creating a panel to add buttons        JPanel p = new JPanel();          // Adding buttons and textfield to panel        // using add() method        p.add(b);        p.add(b1);        p.add(b2);        p.add(l);          // setbackground of panel        p.setBackground(Color.red);          // Adding panel to frame        f.add(p);          // Setting the size of frame        f.setSize(300, 300);          f.show();    }}
Output: 
Example 2:
Java
// Java Program to Create a JPanel with a Border Layout// and Adding Components to It  // Importing required classesimport java.awt.*;import java.awt.event.*;import javax.swing.*;  // Main class// Extending JFrame classclass solution extends JFrame {      // JFrame    static JFrame f;      // JButton    static JButton b, b1, b2, b3;      // Label to display text    static JLabel l;      // Main driver method    public static void main(String[] args)    {        // Creating a new frame to store text field and        // button        f = new JFrame("panel");          // Creating a label to display text        l = new JLabel("panel label");          // Creating a new buttons        b = new JButton("button1");        b1 = new JButton("button2");        b2 = new JButton("button3");        b3 = new JButton("button4");          // Creating a panel to add buttons        // and a specific layout        JPanel p = new JPanel(new BorderLayout());          // Adding buttons and textfield to panel        // using add() method        p.add(b, BorderLayout.NORTH);        p.add(b1, BorderLayout.SOUTH);        p.add(b2, BorderLayout.EAST);        p.add(b3, BorderLayout.WEST);        p.add(l, BorderLayout.CENTER);          // setbackground of panel        p.setBackground(Color.red);          // Adding panel to frame        f.add(p);          // Setting the size of frame        f.setSize(300, 300);          f.show();    }}
Output:
 Example 3:
Java
// Java Program to Create a JPanel with a Box layout// and Adding components to it  // Importing required classesimport java.awt.*;import java.awt.event.*;import javax.swing.*;  // Main class// Extending JFrame classclass solution extends JFrame {      // JFrame    static JFrame f;      // JButton    static JButton b, b1, b2, b3;      // Label to display text    static JLabel l;      // Main drive method    public static void main(String[] args)    {        // Creating a new frame to store text field and        // button        f = new JFrame("panel");          // Creating a label to display text        l = new JLabel("panel label");          // Creating a new buttons        b = new JButton("button1");        b1 = new JButton("button2");        b2 = new JButton("button3");        b3 = new JButton("button4");          // Creating a panel to add buttons and        // textfield and a layout        JPanel p = new JPanel();          // Setting box layout        p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));          // Adding buttons and textfield to panel        p.add(b);        p.add(b1);        p.add(b2);        p.add(b3);        p.add(l);          // Setting background of panel        p.setBackground(Color.red);          // Adding panel to frame        f.add(p);          // Setting the size of frame        f.setSize(300, 300);          f.show();    }}
Output:
Henceforth, we are successfully able to generate buttons in our panel. 
Note: In the previous Program, border layout and Box Layout are used. Different other layouts can be used to organize the components in a definite pattern, such as card layout, grid layout, etc. 
nidhi_biet
Akanksha_Rai
sweetyty
solankimayank
java-swing
Java
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Object Oriented Programming (OOPs) Concept in Java
How to iterate any Map in Java
Interfaces in Java
HashMap in Java with Examples
ArrayList in Java
Stream In Java
Collections in Java
Multidimensional Arrays in Java
Singleton Class in Java
Set in Java