Java Swing Tutorials - Herong's Tutorial Examples - v4.31, by Herong Yang
ActionListener and ItemListener
This section provides a tutorial example on how to use ActionListener and ItemListener interfaces to handle different types of events generated on combo box.
As you can see from the previous section, a check box can have 2 types of event listeners: ActionListener and ItemListener. The following sample program shows you when those listeners are called, and how many times:
/* JComboBoxTest.java * Copyright (c) 1997-2018 HerongYang.com. All Rights Reserved. */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class JComboBoxTest { public static void main(String[] a) { JFrame f = new JFrame("My Combo Box"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel color = new JLabel("Colors:"); f.getContentPane().add(color,BorderLayout.NORTH); String[] options = {"Red", "Green", "Blue"}; MyComboBox list = new MyComboBox(options); list.setSelectedIndex(-1); f.getContentPane().add(list,BorderLayout.SOUTH); f.pack(); f.setVisible(true); } private static class MyComboBox extends JComboBox<String> implements ActionListener, ItemListener { static int count = 0; public MyComboBox(String[] l) { super(l); addActionListener(this); addItemListener(this); this.setSelectedIndex(-1); } public void actionPerformed(ActionEvent e) { count++; System.out.println(count+": Action performed - "); } public void itemStateChanged(ItemEvent e) { count++; System.out.println(count+": Item state changed - "); } } }
This example program creates a combo box with 3 options. It has 2 listeners to handle 2 different types of events. A counter is used in the listener class to help to identify the order of events.
If you run this program, you will see a combo box with 3 options: "Red", "Green" and "Blue". By default, the first option will be selected. But I called the setSelectedIndex(-1) to removed the selection.
If you open the drop-down list, you see messages 1 and 2. If you select the "Red" option, you see messages 3 and 4. If you change the selection to "Green", you see messages 5, 6, and 7.
1: Item state changed - 2: Action performed - 3: Item state changed - 4: Action performed - 5: Item state changed - 6: Item state changed - 7: Action performed -
Note that:
Table of Contents
Introduction of Java Swing Package
Graphics Environment of the Local System
JCheckBox - Swing Check Box Class
JRadioButton - Swing Radio Button Class
JTextField - Swing Text Field Class
►JComboBox - Swing Combo Box Class
javax.swing.JComboBox and Related Methods
►ActionListener and ItemListener
getSelectedItem() - Selected Item of Combo Box
setEditable() - Use Combo Box as Text Field
Menu Bar, Menus, Menu Items and Listeners
Creating Internal Frames inside the Main Frame
Layout of Components in a Container
JEditorPane - The Editor Pane Class
SwingWorker - The Background Task Worker
AWT (Abstract Windows Toolkit)