How can we implement an editable JLabel in Java?\\n



In this article, we will learn to implement an editable JLabel in Java. An editable JLabel is a label component that can be converted to an editable text field when clicked.

JLabel

A JLabel class can extend the JComponent class, and an object of JLabel provides text instructions or information on a GUI. A JLabel can display a single line of read-only text, an image, or both text and image.

Syntax

The following is the syntax for JLabel initialization:

JLabel label = new JLabel("Tutorials Point");

A JLabel can explicitly generate a PropertyChangeListener interface.

Methods

The important methods of a JLabel are:

  • setText()
  • setIcon()
  • setBackground()
  • setOpaque()
  • setHorizontalAlignment()
  • setVerticalAlignment()

Creating an Editable JLabel

By default, a JLabel does not allow editing of the label. We can have an editable JLabel using the Swing CardLayout to flip between a JLabel and a JTextField.

The following is the step-by-step process for implementing an editable JLabel in Java:

Components Creation

Creates a JLabel with initial text as "Welcome to Tutorials Point", a JTextField for editing the JLabel, a CardLayout that shows one component at a time, and a JPanel using the CardLayout.

final JLabel label = new JLabel(" Welcome to Tutorials Point"); final JTextField textfield = new JTextField(); final CardLayout cl = new CardLayout(); final JPanel panel = new JPanel(cl);

Adding Components to the Panel

Adds both label and textfield to the panel, and then adds the panel to the JFrame.

panel.add(label, "label component"); panel.add(textfield, "textfield component"); add(panel);

Mouse Listeners for Label

When the mouse enters the label using the mouse listener, it copies the label text to the textfield, and shows the textfield using CardLayout.

label.addMouseListener(new MouseAdapter() { public final void mouseEntered(MouseEvent evt) { textfield.setText(label.getText()); cl.show(panel, "textfield component"); } });

Mouse Listeners for TextField

When the mouse exits the textfield, it copies the textfield content back to the label, and shows the label with the edited text.

textfield.addMouseListener(new MouseAdapter() { public final void mouseExited(MouseEvent evt) { label.setText(textfield.getText()); cl.show(panel, "label component"); } });

Example

Below is an example of implementing an editable JLabel in Java:

import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.text.*; public class JEditableLabel extends JFrame { public JEditableLabel() { setTitle("JEditableLabel"); setLayout(new FlowLayout()); final JLabel label = new JLabel("Welcome to Tutorials Point"); final JTextField textfield = new JTextField(); final CardLayout cl = new CardLayout(); final JPanel panel = new JPanel(cl); panel.add(label, "label component"); panel.add(textfield, "textfield component"); add(panel); label.addMouseListener(new MouseAdapter() { public final void mouseEntered(MouseEvent evt) { textfield.setText(label.getText()); cl.show(panel, "textfield component"); } }); textfield.addMouseListener(new MouseAdapter() { public final void mouseExited(MouseEvent evt) { label.setText(textfield.getText()); cl.show(panel, "label component"); } }); setSize(375, 250); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } public static void main(String[] args) { new JEditableLabel(); } }

Output

Alshifa Hasnain
Alshifa Hasnain

Converting Code to Clarity

Updated on: 2025-05-12T18:25:26+05:30

471 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements