What is Swing?
Java Swing is a lightweight Graphical User Interface (GUI) toolkit that includes a rich set of widgets. It includes package lets you make GUI components for your Java applications, and It is platform independent.
The Swing library is built on top of the Java Abstract Widget Toolkit (AWT), an older, platform dependent GUI toolkit. You can use the Java GUI components like button, textbox, etc. from the library and do not have to create the components from scratch.
Java Swing class Hierarchy Diagram
All components in swing are JComponent which can be added to container classes.
What is a container class?
Container classes are classes that can have other components on it. So for creating a GUI, we need at least one container object. There are 3 types of containers.
- Panel: It is a pure container and is not a window in itself. The sole purpose of a Panel is to organize the components on to a window.
- Frame: It is a fully functioning window with its title and icons.
- Dialog: It can be thought of like a pop-up window that pops out when a message has to be displayed. It is not a fully functioning window like the Frame.
Java GUI Example
Example: To learn to design GUI in Java
Step 1) Copy the following code into an editor
Step 2) Save, Compile, and Run the code.
Step 3) Now let's Add a Button to our frame. Copy following code into an editor
Step 4) Execute the code. You will get a big button
Step 5) How about adding two buttons? Copy the following code into an editor.
Step 6) Save , Compile , and Run the program.
Step 7) Unexpected output =? Buttons are getting overlapped.
Java Layout Manger
The Layout manager is used to layout (or arrange) the GUI java components inside a container.There are many layout managers, but the most frequently used are-
BorderLayout places components in up to five areas: top, bottom, left, right, and center. It is the default layout manager for every java JFrame
FlowLayout is the default layout manager for every
JPanel. It simply lays out components in a single row one after the other.
It is the more sophisticated of all layouts. It aligns components by placing them within a grid of cells, allowing components to span more than one cell.
Step 8) How about creating a chat frame like below?
Try to code yourself before looking at the program below.