Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How can we show a popup menu when the user right-clicks on a JComboBox in Java?
A JComboBox is a Swing component that has a built-in left-click menu. In this article, we will learn how to show a popup menu when the user right-clicks on a JComboBox in Java.
What is a JComboBox?
A JComboBox is a subclass of the JComponent class that displays a drop-down list and gives users options that they can select only one item at a time. A JComboBox can be editable or read-only.
The getSelectedItem() Method
A getSelectedItem() method can be used to get the selected or entered item from a combo box.
What is a Popup Menu?
A popup menu is a scrollable list of options that shows up when you right-click(interact) on a Component. It allows users to select an item from the available choices present inside the list. Following is the representation of a pop-up menu:

How to Show a Popup Menu in a JComboBox?
We can invoke a popup menu from a JComboBox when the user right-clicks on it by implementing a MouseListener interface and need to override the mouseReleased() method.
The mouseReleased() Method
The mouseReleased() is a method of the MouseListener interface. This method is called when a mouse button has been released on a component. It takes only one argument (MouseEvent e) in which e is the MouseEvent.
MouseListener Interface
The MouseListener interface handles all the mouse interactions(press, release, click, enter, and exit). The class that processes the MouseEvent should implement this interface. The object for a MouseListener is registered using the addMouseListener() method.
The following are the methods of the MouseListener interface:
- mouseReleased
- mouseClicked()
- mouseEntered()
- mouseExited()
- mousePressed()
Syntax
Below is the syntax for declaring a mouseReleased() Method:
public void mouseReleased(MouseEvent me)
The isPopupTrigger() Method
The isPopupTrigger() is a method of the MouseEvent class. This method determines if a mouse event triggers a popup menu on the component.
Showing the Popup Menu on a JComboBox on a Right Click
To show a popup menu when we right-click on a JComboBox in Java, in the first step, we will initialize a JComboBox named "jcb", then we will create a JPopupMenu named "jpm".
jcb = new JComboBox(new String[] {"Item 1", "Item 2", "Item 3"});
jpm = new JPopupMenu();
Next, we will create two JMenuItems: mItem1 and mItem2, titled "Popup Item 1" and "Popup Item 2" respectively, and add both items to the JPopupMenu using the add() method.
A MouseAdapter is attached to the MouseListener to detect right-clicks (popup triggers) on the JButton retrieved using the getComponent() method, then checks if the mouse event is a right-click with the help of isPopupTrigger(), and then shows the JPopupMenu items in a form a of a list.
((JButton)jcb.getComponent(0)).addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent me) {
if (me.isPopupTrigger()) {
jpm.show(jcb, me.getX(), me.getY());
}
}
});
Example
Below is an example of showing a pop-up menu when the user right-clicks on a JComboBox in Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JComboBoxPopupTest extends JFrame {
private JComboBox jcb;
private JPopupMenu jpm;
private JMenuItem mItem1, mItem2;
public JComboBoxPopupTest() {
setTitle("JComboBoxPopup Test");
setLayout(new FlowLayout());
jcb = new JComboBox(new String[] {"Item 1", "Item 2", "Item 3"});
jpm = new JPopupMenu();
mItem1 = new JMenuItem("Popup Item 1");
mItem2 = new JMenuItem("Popup Item 2");
jpm.add(mItem1);
jpm.add(mItem2);
((JButton)jcb.getComponent(0)).addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent me) {
if (me.isPopupTrigger()) {
jpm.show(jcb, me.getX(), me.getY());
}
}
});
add(jcb);
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) throws Exception {
new JComboBoxPopupTest();
}
}