JFrame: Represents a basic, capable of containing other components window. Almost all applications built one JFrame.
JPanel: Panel is a container to hold different Swing components. One can add any number of components to a panel and there can be multiple panels in the same frame. It also supports double buffering which is used in animation to avoid flickering. In double buffering, object is first written to an off-screen memory before display and then switched over to the panel. Flow layout is the default layout for the panel. A panel is an object of class JPanel which is present in package javax.swing.
Some of the constructors defined by JPanel class are as follows:
JPanel(LayoutManager layout, boolean isDoubleBuffered)
isDoubleBuffered defines whether the panel is double buffered or not. It can have one of the values: true (double buffered) or false (not double buffered).
layout defines the layout of the panel.
public class PanelsWithJFrameJavaExample extends JFrame
private final int WIDTH = 250;
private final int HEIGHT = 120;
private JButton BtnOne = new JButton("One");
private JButton BtnTwo = new JButton("Two");
private JButton BtnThree = new JButton("Three");
super("Panels in Java swing");
JPanel PnlOne = new JPanel();
JPanel PnlTwo = new JPanel();
Container cntnr = getContentPane();
public static void main(String args)
PanelsWithJFrameJavaExample panel = new PanelsWithJFrameJavaExample();