The
Popup
class provides a pop-up menu, from which a single item may be selected at any one time. The menu is displayed when the user performs the triggering action, whcih is platform-dependent. In this example, we use a double oclick as the triggering event.See the
PopupMenu
class in the java.awt package.Because the popup menu is activated in response to a user action, the event methods are also shown, below.
PopupMenu popup; MenuItem cut, copy, paste; public void init ( ){ popup = new PopupMenu (); cut = new MenuItem ( "cut" ); cut.addActionListener ( this ); copy = new MenuItem ( "copy" ); copy.addActionListener ( this ); paste = new MenuItem ( "paste" ); paste.addActionListener ( this ); popup.add ( cut ); popup.add ( copy ); popup.add ( paste ); outerBox.add ( popup ); } // end init //**** MouseListener methods int lastX, lastY; public void mousePressed ( MouseEvent e ) { } // end mousePressed public void mouseReleased ( MouseEvent e ) { if ( e.isPopupTrigger() ) { eraseMessage (); lastX = e.getX(); lastY = e.getY(); popup.show ( outerBox, e.getX(), e.getY() ); } // end process popupmenu actions } // end mouseReleased public void mouseEntered ( MouseEvent e ) { } // end mouseEntered public void mouseExited ( MouseEvent e ) { } // end mouseExited public void mouseClicked ( MouseEvent e ) { } // end mouseClicked //**** ActionListener methods public void actionPerformed ( ActionEvent e ) { Object s = e.getSource(); Graphics g = outerBox.getGraphics (); if ( s == cut ) g.drawString( "Cut selected", lastX, lastY ); if ( s == copy ) g.drawString( "Copy selected", lastX, lastY ); if ( s == paste ) g.drawString( "Paste selected", lastX, lastY ); } // end actionPerformed