event

ItemListener example

In this example we are going to see how to use several components like  JRadioButton  and JComboBox  bundled with an ItemListener. As you know, radio buttons and combo boxes are quite popular in Graphical Applications because they give flexibility to the end users, and it’s very natural to them to interact with them when you want to give specific values to choose from.

In short, to use components with ItemListener you have to:

  • Create a new class that implements ItemListener interface.
  • Override the methods that correspond to the events that you want to monitor on the radio buttons e.g itemStateChanged and customize as you wish the handling of the respective event
  • Create a number of new JRadioButtons components.
  • Use the addItemListener to add the ItemListener to each one of the buttons.
  • Create JComboBox components and use the addItemListener to add the ItemListener to each one of the.

Let’s see the code snippet that follows:

package com.javacodegeeks.snippets.desktop;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.ButtonGroup;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

public class ItemListenerExample {

    public static void main(String args[]) {

  JFrame jFrame = new JFrame();

  Container cPane = jFrame.getContentPane();

  ItemListener itemListener = new ItemListener() {

@Override

public void itemStateChanged(ItemEvent event) {

    System.out.println("Source: " + getName(event.getSource()));

    System.out.println("Item: " + getName(event.getItem()));

    int state = event.getStateChange();

    System.out.println("State: "

+ ((state == ItemEvent.SELECTED) ? "Selected"

: "Deselected"));

}

private String getName(Object o) {

    if (o instanceof JComponent) {

  JComponent jComponent = (JComponent) o;

  return jComponent.getName();

    } else {

  return o.toString();

    }

}

  };

  JPanel jPanel = new JPanel(new GridLayout(0, 1));

  ButtonGroup buttonGroup = new ButtonGroup();

  JRadioButton option = new JRadioButton("Option 1", true);

  option.setName(option.getText());

  option.addItemListener(itemListener);

  buttonGroup.add(option);

  jPanel.add(option);

  option = new JRadioButton("Option 2", false);

  option.setName(option.getText());

  option.addItemListener(itemListener);

  buttonGroup.add(option);

  jPanel.add(option);

  option = new JRadioButton("Option 3", false);

  option.setName(option.getText());

  option.addItemListener(itemListener);

  buttonGroup.add(option);

  jPanel.add(option);

  cPane.add(jPanel, BorderLayout.NORTH);

  String itemArray[] = {"Item 1", "Item 2", "Item 3"};

  JComboBox combobox = new JComboBox(itemArray);

  combobox.setName("Combo");

  combobox.addItemListener(itemListener);

  combobox.setMaximumRowCount(4);

  cPane.add(combobox, BorderLayout.SOUTH);

  jFrame.pack();

  jFrame.setVisible(true);
    }
}

 
This was an example on how to work with ItemListener in Java.

Want to know how to develop your skillset to become a Java Rockstar?

Join our newsletter to start rocking!

To get you started we give you our best selling eBooks for FREE!

 

1. JPA Mini Book

2. JVM Troubleshooting Guide

3. JUnit Tutorial for Unit Testing

4. Java Annotations Tutorial

5. Java Interview Questions

6. Spring Interview Questions

7. Android UI Design

 

and many more ....

 

Receive Java & Developer job alerts in your Area

I have read and agree to the terms & conditions

 

Ilias Tsagklis

Ilias is a software developer turned online entrepreneur. He is co-founder and Executive Editor at Java Code Geeks.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
Back to top button