Java Swing

Java Swing is the extension of Abstract Windows Toolkit (AWT). Any component designed in Swing will appear the same on any platform.

Problems/Disadvantage of Abstract Windows Toolkit (AWT):

  1. As we know that AWT is internally dependent on C language code and C language is a Platform dependent so in Java, it is not desirable.
  2. Any component developed in AWT, its look and feel changes depending on the platform. For example, if you write code for a push button in AWT, when you run that code in Windows it will display windows type of push button whereas same code executed in UNIX operating system, then it will display UNIX type of push button. So we can’t be sure how a particular screen will look on a particular operating system because its appearance changes from system to system.
  3. Component developed in AWT is very heavy-weight, so it consumes more system resources such as more Memory space, more processor time, etc.

Solution of above (AWT) problems:

To fix the problems of AWT, JavaSoft people redeveloped complete AWT package without internally taking the help of native methods. So all AWT classes extended to form new classes and new class library is created, further this library is called as Java Foundation Classes (JFC).

Java Foundation Classes created five main library package which is very popular in GUI designing.

  1. Javax.swing
  2. Javax.accessibility
  3. Javax.swing.plaf
  4. Java.awt.dnd
  5. Java.aet.geon

Advantage of JFC Library for GUI designing:

  1. JFC library classes create a light-weight component, so it consumes less resources (memory, processors) and executes much faster than AWT component.
  2. Any Component created by using JFC library classes appears the same on every platform.
  3. JFC is an extension of AWT, so all the methods that we used in AWT are also applicable in JFC.

Among the five main JFC library, Javax.swing Library is very famous, and it’s used by every programmer.

Let’s Explore “ Javax.swing  :

Its most commonly used JFC library for the graphical user interface (GUI) designing in Java programming. It provides classes to create components such as push button, checkbox, menu list, radio button, etc.

Swing Follow Model – View – Controller (MVC) architecture:

Model: It represents the data of any swing component.

View:  It represents the visual appearance of any swing component based on the data model.

Controller: It is the mediator between the model and view. Whenever a user interacts with the swing component, first of all, the controller will understand this and modify the model data accordingly.

Important Classes of “Swing Package”

In Javax.swing package there are lots of important classes. These swing classes are derived from the java.awt package.

How to Create a Frame in swing?

A frame represents a window with the free area which has a Title bar and border. In that free area, we can display any Text, or any component can be displayed.

To create a frame we have a JFrame class in swing package.

  •  Create Frame without Title

  •  Create a frame with Title

  •  Create a frame with Title and Frame Size

Note: in place of x and y, put some value in pixel.  Such as :

Java Program to create a frame of 200×200 px size :

Output :

Note:

  1. To Close a Swing frame, we need to take help of methods of JFrame Class.
  2. getDefaultCloseOperation(parameter) => it’s method of JFrame Class.
  3. JFrame.EXIT_ON_CLOSE => it closes the frame/application upon clicking on Close button.

Program:

Output: 

How to Set the Background color of any frame:

To set the background color in frame, we have to set the background color in the Content pane. Content pane is the free area of any frame.

Program:

Output:

How To Display Text in Swing Frame/Application?

Text can be displayed by using the label. We can use the JLabel class to create label.

Program:

 Output:

Creating components like Check Box, Radio Button, Text Field, and Text Area:

Check Box: with the help of the JCheckBox class, we can create Check Boxes.

  • Check box without any label or image

  • Check box with a label

  • Check box with an image

Image will be loaded from ImageIcon object

  • Check box with label and Image

Text Field:  Text field can be created with the help of JTextField Class.

Text field can accommodate only one line of text.

  • Text Field without any text

  • Text Field with some text displaying within it

  • Text Field with a width of 35 character

  • Text Field with text and width of 35 character

Radio Button: Radio Button can be created with the help of JRadioButton Class.

  • Radio Button without any label or image

  • Radio Button with label

  • Radio Button with image

Image will be loaded from ImageIcon object

  •  Radio Button with label and Image

Text Area: Text  Area can display multiple lines of text. With the help of the JTextArea class, we can create a text area.

  • Text Area without any text in it.

  •  Text Area with Some Text in it.

  • Text Area with 10 rows and 30 characters on each row

  • Text Area with some text, 10 rows and 30 characters on each row

Write a Program to Implement “Radio Button, Check Box and Text Area”:

Program:

Output:

How To Create Menu in Swing frame/Application:

Menu is collection of similar types of group of items. With the help of JMenu class, we can create a menu in Swing frame/application.

  • We can create menu Bar by this:

  • We can create separate menus to attach them on Menu bar:

Now attach this file to menu bar:

  • With JMenuItem Class, we can create group of menu items.

Now add it to menulist:

Program:  Creating a Sample Menu List.

Output:

How to Create Progress Bar in Swing ?

Progress Bar is visual representation of any task completion. It represent that how much any particular or a group of task has been completed. With the help of JProgressBar class, we can create Progress Bar.

  • By default horizontal progress bar will create:

  • But you can create Horizontal and Vertical Progress Bar

Program:

 Output:

Note: Swing is a big topic, so in 1000 words we can’t explain every feature. It’s a 1900 word Article.

Leave a Comment