Pop Up Menu
Pop Up Menu
java
import javax.swing.*; import java.awt.event.*;
public class PopUpMenu{ JPopupMenu Pmenu; JMenuItem menuItem; public static void main(String[] args) { PopUpMenu p = new PopUpMenu(); }
public PopUpMenu(){ JFrame frame = new JFrame("Creating a Popup Menu"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Pmenu = new JPopupMenu(); menuItem = new JMenuItem("Cut"); Pmenu.add(menuItem); menuItem = new JMenuItem("Copy"); Pmenu.add(menuItem); menuItem = new JMenuItem("Paste"); Pmenu.add(menuItem); menuItem = new JMenuItem("Delete"); Pmenu.add(menuItem); menuItem = new JMenuItem("Undo"); Pmenu.add(menuItem); menuItem.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){}
}); frame.addMouseListener(new MouseAdapter(){ public void mouseReleased(MouseEvent Me){ if(Me.isPopupTrigger()){ Pmenu.show(Me.getComponent(), Me.getX(), Me.getY()); } } }); frame.setSize(400,400); frame.setVisible(true); } }
PopupTest.java
public class PopupTest extends JFrame { private JRadioButtonMenuItem items[]; private Color colorValues[] = { Color.blue, Color.yellow, Color.red };
final JPopupMenu popupMenu = new JPopupMenu(); ItemHandler handler = new ItemHandler(); String colors[] = { "Blue", "Yellow", "Red" }; ButtonGroup colorGroup = new ButtonGroup(); items = new JRadioButtonMenuItem[ 3 ];
// construct each menu item and add to popup menu; also // enable event handling for each menu item for ( int i = 0; i < items.length; i++ ) { items[ i ] = new JRadioButtonMenuItem( colors[ i ] ); popupMenu.add( items[ i ] );
getContentPane().setBackground( Color.white );
// define a MouseListener for the window that displays // a JPopupMenu when the popup trigger event occurs addMouseListener( new MouseAdapter() { public void mousePressed( MouseEvent e ) { checkForTriggerEvent( e ); }
show(); }
public static void main( String args[] ) { PopupTest app = new PopupTest();
private class ItemHandler implements ActionListener { public void actionPerformed( ActionEvent e ) { // determine which menu item was selected for ( int i = 0; i < items.length; i++ ) if ( e.getSource() == items[ i ] ) { getContentPane().setBackground( colorValues[ i ] ); repaint(); return; }
} } }