• Home
  • Testing
  • SAP
  • Web
  • Must Learn!
  • Big Data
  • Live Projects
  • Blog

What is Swing?

The java swing package lets you make GUI components for your java applications and 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.

In this tutorial, you will learn-

Java Swing class Hierarchy Diagram

Creating GUI Components using Java Swing Tutorial

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 Three types of containers

  1. 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.
  2. Frame : It is a fully functioning window with its own title and icons.
  3. Dialog : It can be thought of as a pop-up window that pops out when message has to be displayed. It is not a fully functioning window like the Frame.

Java GUI Example

Assignment: To learn designing GUI in Java
Step 1) Copy the following code into an editor

import javax.swing.*;
class gui{
    public static void main(String args[]){
       JFrame frame = new JFrame("My First GUI");
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       frame.setSize(300,300);
       JButton button = new JButton("Press");
       frame.getContentPane().add(button); // Adds Button to content pane of frame
       frame.setVisible(true);
    }
}

Step 2) Save , Compile and Run the code.
Step 3) Now lets Add a Button to our frame.  Copy following code into an editor

import javax.swing.*;
   class gui{
      public static void main(String args[]){
        JFrame frame = new JFrame("My First GUI");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300,300);
       JButton button1 = new JButton("Press");
       frame.getContentPane().add(button1);
       frame.setVisible(true);
     }
}

Step 4) Execute the code. You will  get a big button  --

Creating GUI Components using Java Swing Tutorial

Step 5) How about adding two buttons. Copy the following code into an editor.

import javax.swing.*;
class gui{
      public static void main(String args[]){
           JFrame frame = new JFrame("My First GUI");
           frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           frame.setSize(300,300);
          JButton button1 = new JButton("Button 1");
          JButton button2 = new JButton("Button 2");
          frame.getContentPane().add(button1);
          frame.getContentPane().add(button2);
          frame.setVisible(true);
     }
}

Step 6)Save , Compile , & Run the program.
Step 7) Unexpected output = ? Buttons are getting overlapped.
Enter

Java Layout Manger

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-

Java BorderLayout


BorderLayout places components in up to five areas: top, bottom, left, right, and center. It is the default layout manager for every java JFrame

Creating GUI Components using Java Swing Tutorial

Java FlowLayout


FlowLayout is the default layout manager for every JPanel. It simply lays out components in a single row one after the other.

Creating GUI Components using Java Swing Tutorial

Java GridBagLayout



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.

Creating GUI Components using Java Swing Tutorial

Step 8) How about creating a chat frame like below.

Creating GUI Components using Java Swing Tutorial

Try to code yourself before looking at the program below.

//Usually you will require both swing and awt packages
// even if you are working with just swings.
import javax.swing.*;
import java.awt.*;
class gui{
public static void main(String args[]){
//Creating the Frame
JFrame frame = new JFrame("Chat Frame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,400);
//Creating the MenuBar and adding components
JMenuBar mb = new JMenuBar();
JMenu m1 = new JMenu("FILE");
JMenu m2 = new JMenu("Help");
mb.add(m1);
mb.add(m2);
JMenuItem m11 = new JMenuItem("Open");
JMenuItem m22 =new JMenuItem("Save as");
m1.add(m11);
m1.add(m22);
//Creating the panel at bottom and adding components
JPanel panel = new JPanel(); // the panel is not visible in output
JLabel label = new JLabel("Enter Text");
JTextField tf = new JTextField(10);// accepts upto 10 characters
JButton send = new JButton("Send");
JButton reset = new JButton("Reset");
panel.add(label);// Components Added using Flow Layout
panel.add(tf);
panel.add(send);
panel.add(reset);
// Text Area at the Center
JTextArea ta = new JTextArea();
//Adding Components to the frame.
frame.getContentPane().add(BorderLayout.SOUTH,panel);
frame.getContentPane().add(BorderLayout.NORTH,mb);
frame.getContentPane().add(BorderLayout.CENTER,ta);
frame.setVisible(true);
}
}

 

YOU MIGHT LIKE: