Easy to Learn Java: Programming Articles, Examples and Tips

Start with Java in a few days with Java Lessons or Lectures

Home

Code Examples

Java Tools

More Java Tools!

Java Forum

All Java Tips

Books

Submit News
Search the site here...
Search...
 

PopupMenu: another PopupDemo Java code example - Click here to copy ->>>

   Can't find what you're looking for? Try our search:

Really working examples categorized by API, package, class. You can compile and run our examples right away! Not from source code for Java projects - only working examples! Copy, compile and run!
------------------

Code:



// From: mg@dsd.camb.inmet.com (Mitch Gart)

import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import java.util.*;

public class PopupDemo extends Frame
    implements ActionListener, MouseListener {

   public static void main (String argv[]) {
      new PopupDemo().setVisible(true);
   }

   public PopupDemo() {
      MenuBar mb = new MenuBar();
      setMenuBar(mb);
      Menu m = new Menu("file");
      mb.add(m);
      MenuItem item = new MenuItem("file-1");
      item.addActionListener(this);
      m.add(item);
      item = new MenuItem("file-2");
      m.add(item);

      setSize(100, 100);
      setLayout(new BorderLayout());

      Label l = new Label("label");
      addPopup(l, "label");
      add(l, "North");

      Panel p = new Panel();
      addPopup(p, "Panel");
      add(p, "Center");

      Button b = new Button("button");
      addPopup(b, "button");
      add(b, "South");
   }

   public void actionPerformed(ActionEvent e) {
      System.out.println("actionPerformed, event=" + e + ", mod=" + getMods(e));
      System.out.println(" command=" + e.getActionCommand());
      System.out.println(" param=" + e.paramString());
      System.out.println(" source=" + e.getSource());
   }

     String getMods(ActionEvent e) { return getMods(e.getModifiers()); }

     String getMods(MouseEvent e) { return getMods(e.getModifiers()); }

  // a convenience routine for printing the Modifier keys
   String getMods(int mods) {
    String modstr = "";
    if ((mods & ActionEvent.SHIFT_MASK) == ActionEvent.SHIFT_MASK)
      modstr += (" SHIFT");
    if ((mods & ActionEvent.ALT_MASK) == ActionEvent.ALT_MASK)
      modstr += (" ALT");
    if ((mods & ActionEvent.CTRL_MASK) == ActionEvent.CTRL_MASK)
      modstr += (" CTRL");
    if ((mods & ActionEvent.META_MASK) == ActionEvent.META_MASK)
      modstr += (" META");
    return modstr;
  }

  public void mouseClicked (MouseEvent e) {
    mouseAction("mouseClicked", e);
  }

  public void mouseEntered (MouseEvent e) {
  }

  public void mouseExited (MouseEvent e) {
  }

  public void mousePressed (MouseEvent e) {
    mouseAction("mousePressed", e);
  }

  public void mouseReleased (MouseEvent e) {
    mouseAction("mouseReleased", e);
  }

  void mouseAction (String which, MouseEvent e) {
    Component c = e.getComponent();
    System.out.println(which + "e=" + e + ", mods=" + getMods(e) +
                       ", component=" + c);
    if (e.isPopupTrigger()) {
      System.out.println("isPopup");
      PopupMenu pm = getHash(c);
      pm.show(c, c.getSize().width/2, c.getSize().height/2);
    }
  }


  void addPopup(Component c, String name) {
    PopupMenu pm = new PopupMenu();
    MenuItem mi = new MenuItem(name + "-1");
    mi.addActionListener(this);
    pm.add(mi);

    mi = new MenuItem(name + "-2");
    pm.add(mi);

    setHash(c, pm);
    c.add(pm);
    c.addMouseListener(this);
  }


  Hashtable popupTable = new Hashtable();

  void setHash(Component c, PopupMenu p) {
    popupTable.put(c, p);
  }

  PopupMenu getHash(Component c) {
    return (PopupMenu)(popupTable.get(c));
  }
}



/**
*   Java Code from Java Cookbook, Second Edition
*   By Ian F. Darwin
*   Second Edition June 2004
*   Series: Cookbooks
*   ISBN: 0-596-00701-9
*   Details: http://www.oreilly.com/catalog/javacook2/index.html
*   Copyright (c) Ian F. Darwin, http://www.darwinsys.com/, 1996-2002.
*   All rights reserved. Software written by Ian F. Darwin and others.
*   $Id: LICENSE,v 1.8 2004/02/09 03:33:38 ian Exp $
*/


 
 



References.

The list of classes which were used on this page you can find below. The links to Java API contain official SUN documentation about all used classes.

  java.awt.PopupMenu

  java.awt.Frame

  java.awt.event.ActionListener

  java.awt.event.MouseListener

  java.awt.MenuBar

  java.awt.Menu

  java.awt.MenuItem

  java.awt.BorderLayout

  java.awt.Label

  java.awt.Panel

  java.awt.Button

  java.awt.event.ActionEvent

  java.awt.event.MouseEvent

  java.lang.reflect.Modifier

  java.awt.Component

  java.util.Hashtable




[ Go Back ]



Home Code Examples Java Forum All Java Tips Books Submit News, Code... Search... Offshore Software Tech Doodling

RSS feed Java FAQ RSS feed Java FAQ News     

    RSS feed Java Forums RSS feed Java Forums

All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest 1999-2006 by Java FAQs Daily Tips.

Interactive software released under GNU GPL, Code Credits, Privacy Policy