Swing in Java

tutorial and example
tutorial and example

Java Swing

Java Swing is the extension of Abstract Windows Toolkit (AWT). Any component designed in Swing will appear 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 of 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 are very heavy-weight, so It’s 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 light-weight component so it consumes less resources (memory, processors) and execute much faster than AWT component.
  2. Any Component created by using JFC library classes appears 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 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 graphical user interface (GUI) designing in Java programing. It provide classes to create components such as push button, check box, menu list, radio button etc…

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

Model: it’s represents the data of any swing component.

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

Controller: It is the mediator between the model and view. Whenever user interact with the swing component, first of all 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 all swing classes are derived from java.awt package.

How to Create a Frame in swing?

A frame represent a window with 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 frame with Title

  •  Create 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 :

How to Close a Swing frame/Application by Clicking Exit button (X):

To Close a Swing frame, we need to take help of methods of JFrame Class.

   getDefaultCloseOperation(parameter) => it’s method of JFrame Class.

  JFrame.EXIT_ON_CLOSE => it closes the frame/application upon clicking on Close button.

Program:

Output: 

How to Set Background colour of any frame:

To set the background colour in frame, we have to set the background colour 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 label. We can use 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 JCheckBox class, we can create Check Boxes.

  • Check box without any label or image

  • Check box with label

  • Check box with 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 line of text. With the help of 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 row and 30 character on each row

  • Text Area with some text, 10 row and 30 character 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.