⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jpopupmenu.java

📁 gcc的组建
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* JPopupMenu.java --   Copyright (C) 2002, 2004, 2005  Free Software Foundation, Inc.This file is part of GNU Classpath.GNU Classpath is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version.GNU Classpath is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU Classpath; see the file COPYING.  If not, write to theFree Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA02110-1301 USA.Linking this library statically or dynamically with other modules ismaking a combined work based on this library.  Thus, the terms andconditions of the GNU General Public License cover the wholecombination.As a special exception, the copyright holders of this library give youpermission to link this library with independent modules to produce anexecutable, regardless of the license terms of these independentmodules, and to copy and distribute the resulting executable underterms of your choice, provided that you also meet, for each linkedindependent module, the terms and conditions of the license of thatmodule.  An independent module is a module which is not derived fromor based on this library.  If you modify this library, you may extendthis exception to your version of the library, but you are notobligated to do so.  If you do not wish to do so, delete thisexception statement from your version. */package javax.swing;import java.awt.Component;import java.awt.Dimension;import java.awt.Insets;import java.awt.Point;import java.awt.event.KeyEvent;import java.awt.event.MouseEvent;import java.beans.PropertyChangeEvent;import java.beans.PropertyChangeListener;import java.util.ArrayList;import java.util.EventListener;import javax.accessibility.Accessible;import javax.accessibility.AccessibleContext;import javax.accessibility.AccessibleRole;import javax.swing.event.PopupMenuEvent;import javax.swing.event.PopupMenuListener;import javax.swing.plaf.PopupMenuUI;/** * JPopupMenu is a container that is used to display popup menu's menu * items. By default JPopupMenu is a lightweight container, however if it * is the case that JPopupMenu's bounds are outside of main window, then * heawyweight container will be used to display menu items. It is also * possible to change JPopupMenu's default  behavior and set JPopupMenu * to always use heavyweight container. * * JPopupMenu can be displayed anywhere; it is a floating free popup menu. * However before JPopupMenu is diplayed, its invoker property should be set. * JPopupMenu's invoker is a component relative to which popup menu is * displayed. * * JPopupMenu fires PopupMenuEvents to its registered listeners. Whenever * JPopupMenu becomes visible on the screen then PopupMenuEvent indicating * that popup menu became visible will be fired. In the case when * JPopupMenu becomes invisible or cancelled without selection, then * popupMenuBecomeInvisible() or popupMenuCancelled() methods of * PopupMenuListeners will be invoked. * * JPopupMenu also fires PropertyChangeEvents when its bound properties  * change.In addittion to inheritted bound properties, JPopupMenu has  * 'visible' bound property. When JPopupMenu becomes visible/invisible on * the screen it fires PropertyChangeEvents to its registered  * PropertyChangeListeners. */public class JPopupMenu extends JComponent implements Accessible, MenuElement{  private static final long serialVersionUID = -8336996630009646009L;  /* indicates if popup's menu border should be painted*/  private boolean borderPainted = true;  /** Flag indicating whether lightweight, mediumweight or heavyweight popup     is used to display menu items.     These are the possible cases:     1. if DefaultLightWeightPopupEnabled true         (i)  use lightweight container if popup feets inside top-level window         (ii) only use heavyweight container (JDialog) if popup doesn't fit.     2. if DefaultLightWeightPopupEnabled false         (i) if popup fits, use awt.Panel (mediumWeight)         (ii) if popup doesn't fit, use JDialog (heavyWeight)  */  private static boolean DefaultLightWeightPopupEnabled = true;  /* Component that invokes popup menu. */  transient Component invoker;  /* Label for this popup menu. It is not used in most of the look and feel themes. */  private String label;  /*Amount of space between menuItem's in JPopupMenu and JPopupMenu's border */  private Insets margin;  /** Indicates whether ligthWeight container can be used to display popup     menu. This flag is the same as DefaultLightWeightPopupEnabled, but setting     this flag can change popup menu after creation of the object */  private boolean lightWeightPopupEnabled;  /** SelectionModel that keeps track of menu selection. */  private SingleSelectionModel selectionModel;  /* Popup that is used to display JPopupMenu */  private transient Popup popup;  /**   * Location of the popup, X coordinate.   */  private int popupLocationX;  /**   * Location of the popup, Y coordinate.   */  private int popupLocationY;  /* Field indicating if popup menu is visible or not */  private boolean visible = false;    /**   * Creates a new JPopupMenu object.   */  public JPopupMenu()  {    this(null);  }  /**   * Creates a new JPopupMenu with specified label   *   * @param label Label for popup menu.   */  public JPopupMenu(String label)  {    lightWeightPopupEnabled = getDefaultLightWeightPopupEnabled();    setLabel(label);    setSelectionModel(new DefaultSingleSelectionModel());    super.setVisible(false);    updateUI();  }  /**  * Adds given menu item to the popup menu  *  * @param item menu item to add to the popup menu  *  * @return menu item that was added to the popup menu  */  public JMenuItem add(JMenuItem item)  {    this.insert(item, -1);    return item;  }  /**   * Constructs menu item with a specified label and adds it to   * popup menu   *   * @param text label for the menu item to be added   *   * @return constructed menu item that was added to the popup menu   */  public JMenuItem add(String text)  {    JMenuItem item = new JMenuItem(text);    return add(item);  }  /**   * Constructs menu item associated with the specified action   * and adds it to the popup menu   *   * @param action Action for the new menu item   *   * @return menu item that was added to the menu   */  public JMenuItem add(Action action)  {    JMenuItem item = createActionComponent(action);    if (action != null)      action.addPropertyChangeListener(createActionChangeListener(item));    return add(item);  }  /**   * Revomes component at the given index from the menu.   *   * @param index index of the component that will be removed in the menu   */  public void remove(int index)  {    super.remove(index);    revalidate();  }  /**   * Create menu item associated with the given action   * and inserts it into the popup menu at the specified index   *   * @param action Action for the new menu item   * @param index index in the popup menu at which to insert new menu item.   */  public void insert(Action action, int index)  {    JMenuItem item = new JMenuItem(action);    this.insert(item, index);  }  /**   * Insert given component to the popup menu at the   * specified index   *   * @param component Component to insert   * @param index Index at which to insert given component   */  public void insert(Component component, int index)  {    super.add(component, index);  }  /**   * Returns flag indicating if newly created JPopupMenu will use   * heavyweight or lightweight container to display its menu items   *   * @return true if JPopupMenu will use lightweight container to display   * menu items by default, and false otherwise.   */  public static boolean getDefaultLightWeightPopupEnabled()  {    return DefaultLightWeightPopupEnabled;  }  /**   * Sets whether JPopupMenu should use ligthWeight container to   * display it menu items by default   *   * @param enabled true if JPopupMenu should use lightweight container   * for displaying its menu items, and false otherwise.   */  public static void setDefaultLightWeightPopupEnabled(boolean enabled)  {    DefaultLightWeightPopupEnabled = enabled;  }  /**   * This method returns the UI used to display the JPopupMenu.   *   * @return The UI used to display the JPopupMenu.   */  public PopupMenuUI getUI()  {    return (PopupMenuUI) ui;  }  /**   * Set the "UI" property of the menu item, which is a look and feel class   * responsible for handling popupMenu's input events and painting it.   *   * @param ui The new "UI" property   */  public void setUI(PopupMenuUI ui)  {    super.setUI(ui);  }  /**   * This method sets this menuItem's UI to the UIManager's default for the   * current look and feel.   */  public void updateUI()  {    setUI((PopupMenuUI) UIManager.getUI(this));    invalidate();  }  /**   * This method returns a name to identify which look and feel class will be   * the UI delegate for the menuItem.   *   * @return The Look and Feel classID. "PopupMenuUI"   */  public String getUIClassID()  {    return "PopupMenuUI";  }  /**   * Returns selectionModel used by this popup menu to keep   * track of the selection.   *   * @return popup menu's selection model   */  public SingleSelectionModel getSelectionModel()  {    return selectionModel;  }  /**   * Sets selection model for this popup menu   *   * @param model new selection model of this popup menu   */  public void setSelectionModel(SingleSelectionModel model)  {	selectionModel = model;  }  /**   * Creates new menu item associated with a given action.   *   * @param action Action used to create new menu item   *   * @return new created menu item associated with a given action.   */  protected JMenuItem createActionComponent(Action action)  {    return new JMenuItem(action);  }  /**   * Creates PropertyChangeListener that listens to PropertyChangeEvents   * occuring in the Action associated with given menu item in this popup menu.   *   * @param item MenuItem   *   * @return The PropertyChangeListener   */  protected PropertyChangeListener createActionChangeListener(JMenuItem item)  {    return new ActionChangeListener();  }  /**   * Returns true if this popup menu will display its menu item in   * a lightweight container and false otherwise.   *   * @return true if this popup menu will display its menu items   * in a lightweight container and false otherwise.   */  public boolean isLightWeightPopupEnabled()  {    return lightWeightPopupEnabled;  }  /**   * DOCUMENT ME!   *   * @param enabled DOCUMENT ME!   */  public void setLightWeightPopupEnabled(boolean enabled)  {    lightWeightPopupEnabled = enabled;  }  /**   * Returns label for this popup menu   *   * @return label for this popup menu   */  public String getLabel()  {    return label;  }  /**   * Sets label for this popup menu. This method fires PropertyChangeEvent   * when the label property is changed. Please note that most   * of the Look & Feel will ignore this property.   *   * @param label label for this popup menu   */  public void setLabel(String label)  {    if (label != this.label)      {	String oldLabel = this.label;	this.label = label;	firePropertyChange("label", oldLabel, label);      }  }  /**   * Adds separator to this popup menu   */  public void addSeparator()  {    // insert separator at the end of the list of menu items        this.insert(new Separator(), -1);  }  /**   * Adds popupMenuListener to listen for PopupMenuEvents fired   * by the JPopupMenu   *   * @param listener PopupMenuListener to add to JPopupMenu   */  public void addPopupMenuListener(PopupMenuListener listener)  {    listenerList.add(PopupMenuListener.class, listener);  }  /**   * Removes PopupMenuListener from JPopupMenu's list of listeners   *   * @param listener PopupMenuListener which needs to be removed   */  public void removePopupMenuListener(PopupMenuListener listener)  {    listenerList.remove(PopupMenuListener.class, listener);  }  /**   * Returns array of PopupMenuListeners that are listening to JPopupMenu   *   * @return Array of PopupMenuListeners that are listening to JPopupMenu   */  public PopupMenuListener[] getPopupMenuListeners()  {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -