JPopupMenu is a class of javax.swing package . It is an implementation of PopupMenu . JPopupMenu generates a small window that pops up and displays a series of choices. JPopupMenu can be used to generate a small window at any position within the container.
Constructor of the class are :
- JPopupMenu() : creates a popup menu with empty name
- JPopupMenu(String name) : creates a popup menu with specified title.
Commonly used methods of JPopupMenu are :
- add(JMenuItem menuItem) : add menuItem to the popup menu.
- add(String s) : add String to the popup menu .
- String getLabel() : get the popup menu’s label.
- boolean is Visible() : returns whether the JPopup menu is visible or not.
- setLabel(String s) : sets the popup menu’s label.
- setLocation(int x, int y) : sets the pop up menu;s location to the given coordinates
- setPopupSize(int width, int height) : set the popup size to give height and width
- setVisible(boolean b) : sets the visibility of the pop up menu, visible if true is passed as argument or vice versa.
- show(Component c, int x, int y) : displays the popup menu at x, y position within the component c.
1. Program to show a simple popup menu
// Java program to show a simple popup menu import java.awt.*; import java.awt.event.*; import javax.swing.*; class Popup extends JFrame implements ActionListener { // java button static JButton b; // java frame static JFrame f; // popup menu static JPopupMenu pm; // default constructor Popup() { } // main class public static void main(String[] args) { // create a frame f = new JFrame( "Popup" ); // set the size of the frame f.setSize( 400 , 400 ); // close the frame when close button is pressed f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // create anew panel JPanel p = new JPanel(); // create an object of mouse class Popup pop = new Popup(); // create a button b = new JButton( "click" ); // addActionListener b.addActionListener(pop); p.add(b); f.add(p); f.show(); } // when the button is clicked public void actionPerformed(ActionEvent e) { String s = e.getActionCommand(); if (s.equals( "click" )) { // create a popup menu pm = new JPopupMenu( "Message" ); // create a label JLabel l = new JLabel( "this is the popup menu" ); // add the label to the popup pm.add(l); // add the popup to the frame pm.show(f, 100 , 100 ); } } } |
Output :
2.Program to show a popup menu and menu items to it
// Java program to show a popup menu // and menu items to it import java.awt.*; import java.awt.event.*; import javax.swing.*; class Popup extends JFrame implements ActionListener { // java button static JButton b; // java frame static JFrame f; // popup menu static JPopupMenu pm; // JLabel JLabel l; // default constructor Popup() { } // main class public static void main(String[] args) { // create a frame f = new JFrame( "Popup" ); // set the size of the frame f.setSize( 400 , 400 ); // close the frame when close button is pressed f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // create anew panel JPanel p = new JPanel(); // create an object of mouse class Popup pop = new Popup(); // create a button b = new JButton( "click" ); // addActionListener b.addActionListener(pop); // create a popup menu pm = new JPopupMenu( "Message" ); // create menuItems JMenuItem m1 = new JMenuItem( "Item1" ); JMenuItem m2 = new JMenuItem( "Item2" ); JMenuItem m3 = new JMenuItem( "Item3" ); // create a Jlabel JLabel l = new JLabel( "nothing clicked" ); // add menuitems to popup menu pm.add(m1); pm.add(m2); pm.add(m3); // addActionListener m1.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { l.setText( "Item 1 clicked." ); } }); m2.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { l.setText( "Item 2 clicked." ); } }); m3.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { l.setText( "Item 3 clicked." ); } }); // add button and label to frame p.add(b); p.add(l); f.add(p); f.show(); } // when the button is clicked public void actionPerformed(ActionEvent e) { String s = e.getActionCommand(); if (s.equals( "click" )) { // add the popup to the frame pm.show(f, 200 , 200 ); } } } |
Output :
Note : This codes might not run in a online IDE please use an offline compiler
Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready.