Solus Project



Graphical User Interface, or G U I for short, is a visual environment builder for Java programs. It consists of graphical elements that allow users to interact with a program, such as buttons, windows, labels, etc. Two tools that are frequently used to construct GUIs in Java are Swing and JavaFX. This article concentrates on how to use GUI in Java, as well as building it. 

Components of a GUI

An assortment of user interface components make up a GUI. When a user interacts with an application, all these components are shown, and they’re as follows:

1. Input controls like text fields, checkboxes, dropdown menus, and buttons.

2. Informational elements such as banners, symbols, labels, or dialog boxes for notifications.

3. Components for navigation, such as menus, sidebars, and breadcrumbs.

JavaFX and Swing for the GUI

The most popular Java GUI development tools are Swing and JavaFX, as was already noted. Swing is the first choice for Java programmers for building GUIs because it has a flexible architecture that makes the elements adaptable and simple to plug and play.

In terms of JavaFX, it includes a completely new set of graphic elements along with additional capabilities and nomenclature.

What does Swing in Java mean?

A GUI (Graphical User Interface) toolkit in Java called Swing contains the GUI parts. With the help of Swing, Java applications can create sophisticated GUI components using a wide variety of widgets and packages. The Java Foundation Classes (JFC), an Application Programming Interface (API) for Java GUI programming that provides GUI, includes Swing.

The Java AWT (Abstract Widget Toolkit), a more dated, platform-dependent GUI toolkit, is developed on top of the Java Swing library. Instead of creating the components from scratch, you can utilize the library’s simple GUI programming elements like textbox, button, etc.

Swing Elements

Lightweight GUI components are contained in the JFC package called Swing. It has eighteen open packages. Luckily, most of your apps will only require a small number of them. javax.swing and javax.swing.event in particular (less often).

All of your application’s GUI elements must be a part of a container hierarchy in order for them to appear on-screen. A top-level container serves as the root of a containment hierarchy, which is a network of components.

There are three main container classes in Swing:

  • The primary window/frame is made using JFrame.
  • JDialog, a tool for producing dialog boxes.
  • JApplet is a tool for adding Swing elements to applets.

This course will concentrate on using the JFrame Top level container. A content pane and a navigation bar are often the only two components of each top-level container.

What is WindowBuilder?

With WindowBuilder, a robust and user-friendly bi-directional Java GUI designer, it is very simple to create Java GUI apps without having to spend a lot of time coding to display basic forms. You can design complex windows quickly with WindowBuilder. You can generate Java code by using the visual designer. Drag and drop makes adding controls simple. You can also add event handlers, update the properties of your controls, internationalize your app, use a property editor,  and do a lot more.

What does “Container Class” mean?

Classes called container classes hold other parts. Therefore, we require at least a single container object in order to create a Java Swing GUI. 

Java Swing containers come in 3 different varieties;

1. Panel: It ain`t a window in and of itself; it is merely a container. A Panel’s sole function is to arrange the elements on a window.

2. Frame: The window has a title and icons, and it is completely functional.

3. Dialog: It’s comparable to a pop-up window that appears when a message needs to be shown. Like the Frame, that’s not a fully functional window.


Swing’s GUI creation method begins with the creation of a class that describes the primary GUI. This type of article serves as a container for every other component that will be displayed.

The primary interface component in the majority of projects is a frame, specifically the JFrame category/class in the javax.swing package. A frame on a computer is essentially a window that appears whenever a user launches an application. Along with other features, it offers a title bar & buttons for minimizing, maximizing, and close.

JFrame() and JFrame(String) are two examples of the JFrame class’ straightforward constructors (String). The frame’s title bar is left blank when using JFrame(), but it is filled with text when using JFrame(String).

In addition to the title, the frame’s size can be changed. By supplying the desired frame width and height in the setSize(int, int) method, it may be determined. A frame’s size is always expressed in pixels.

For instance, setting the size to 550 and 350 would result in a frame that was those dimensions.

When they are initially created, frames are typically invisible. However, a user can set them to be visible by passing the argument “true” to the frame’s setVisible(boolean) method.

The steps to construct(build) a GUI in Java are as follows; 

STEP 1: You must paste the following code into an editor.

import javax.swing.*;class gui{public static void main(String args[]){     JFrame jframe = new JFrame(“GUI Screen”);   //create JFrame object     jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     jframe.setSize(400,400);        //set size of GUI screen     jframe.setVisible(true);}}

STEP 2: After compiling and running the code as described before, save it.

Step 3 is to add buttons to the frame above. The user must construct an object of the component’s class in order to create an element in Java. The JFrame container class is something we already comprehend.

JButton is one such component that can be used. The clickable buttons are represented by this class. Buttons in any program or application cause user actions. Every action starts with a click; for example, closing an application requires the user to click the close button.

      Additionally, a swing that includes text, a graphic icon, or both can be placed. The subsequent constructors are accessible to users:

  • JButton(String): This button has a text label that you can specify.
  • JButton(Icon): It is identified by a visual icon.
  • JButton(String,Icon): This button’s label consists of both text and an icon.

To paste the following code into an editor:

import javax.swing.*;class gui{ public static void main(String args[]){     JFrame jframe = new JFrame(“GUI Screen”);   //create JFrame object     jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     jframe.setSize(400,400);        //set size of GUI screen     JButton pressButton = new JButton(“Press”);  //create JButton object     jframe.getContentPane().add(pressButton);     jframe.setVisible(true); }}

STEP 4: The aforementioned must be done. The screen will reveal a sizable button.

eIzF6K32KV5ixAA0ojXg1Yz9EbEzOoxkNEDo10mj4cKdf4cpQC i6KdqF j4g6SEnX AoFy maHJTZ7SLc9JLZxj4Eu9 tyYNcQXHswEdRYWbLSAffBU5OI09sHmaUU qFi6n4aUAgsP5cfkJNScA

STEP 5: A viewer can also include two buttons in the frame. Copy the code into an editor from the list below.

import javax.swing.*; class gui{  public static void main(String args[]){      JFrame jframe = new JFrame(“GUI Screen”);      jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);      jframe.setSize(400,400);      JButton firstButton = new JButton(“First Button”);  //create firstButton object      JButton secondButton = new JButton(“Second Button”);  //create secondButton object      jframe.getContentPane().add(firstButton);      jframe.getContentPane().add(secondButton);      jframe.setVisible(true);  } }

STEP 6: Save, compile, and execute the aforementioned code.

STEP 7: Unexpected result =? It indicates that perhaps the buttons are overlapping.

STEP 8: A person may also design chat frames. Here is an illustration of the same:

This is the final step on how to make a GUI in Java

UKV TYHPeVXz6ujHFEkLXsaL HJLX1DCDjRhoBafpAr2sFDo4xp1ovKNgYl46m4plBH5ADsScWhVdTX2gBGoS3anGIqEX

The code to create a conversation frame is as follows:

import javax.swing.*; import java.awt.*; class gui {  public static void main(String args[]) {

      //Create the Frame      JFrame jframe = new JFrame(“Chat Screen”);      jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);      jframe.setSize(400, 400);

 // create two menubar button FILE and HELP      JMenuBar menuBar = new JMenuBar();      JMenu fileMenu = new JMenu(“FILE”);      JMenu helpMenu = new JMenu(“Help”);      menuBar.add(fileMenu);      menuBar.add(helpMenu);

 //  create two more option in FILE button      JMenuItem fileMenu1 = new JMenuItem(“new file”);      JMenuItem fileMenu2 = new JMenuItem(“Save as”);      fileMenu.add(fileMenu1);     fileMenu.add(fileMenu2);

      // Text Area at the Center      JTextArea textArea = new JTextArea();

      //Create the panel at bottom and add label, textArea and buttons      JPanel panel = new JPanel(); // this panel is not visible in output      JLabel label = new JLabel(“Please Enter Text”);      JTextField textField = new JTextField(15); // accepts upto 15 characters      JButton btn_send = new JButton(“Send”);      JButton btn_reset = new JButton(“Reset”);      panel.add(label); // Components Added using Flow Layout      panel.add(textField);      panel.add(btn_send);      panel.add(btn_reset);

      //Adding Components to the frame.      jframe.getContentPane().add(BorderLayout.SOUTH, panel);      jframe.getContentPane().add(BorderLayout.NORTH, menuBar);      jframe.getContentPane().add(BorderLayout.CENTER, textArea);      jframe.setVisible(true);  } }

Java Layout Manager

The GUI Java elements are laid up (or arranged) inside a container using the Layout manager. Although there are other layout managers, the most popular ones are:

BorderLayout in Java

Components can be positioned at the top, bottom, right, left, and center of a BorderLayout. It is every Java JFrame’s default layout manager.

Java BorderLayout

BorderLayout in Java

FlowLayout in Java

Every JPanel uses FlowLayout as its default layout manager. It merely arranges the parts sequentially in a single row.

Java FlowLayout

FlowLayout in Java

GridBagLayout in Java

Of all the layouts, it is the most advanced. Components can span many cells while still being properly aligned since they are placed within a grid pattern.

Java GridBagLayout

GridBagLayout in Java


As a result, it can be said that this article on how to create GUI in Java is quite simple and user-friendly. This is because Java applications allow for customization in accordance with the needs of the user. 

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Stories

Stay on op - Ge the daily news in your inbox