<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FJPopupMenu</id>
		<title>Java Tutorial/Swing/JPopupMenu - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FJPopupMenu"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Swing/JPopupMenu&amp;action=history"/>
		<updated>2026-04-11T03:07:40Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Swing/JPopupMenu&amp;diff=4017&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Swing/JPopupMenu&amp;diff=4017&amp;oldid=prev"/>
				<updated>2010-06-01T04:57:25Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 04:57, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Swing/JPopupMenu&amp;diff=4016&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Swing/JPopupMenu&amp;diff=4016&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Adding action listener to popup menuitem ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.JPopupMenu;&lt;br /&gt;
// Define ActionListener&lt;br /&gt;
class PopupActionListener implements ActionListener {&lt;br /&gt;
  public void actionPerformed(ActionEvent actionEvent) {&lt;br /&gt;
    System.out.println(&amp;quot;Selected: &amp;quot; + actionEvent.getActionCommand());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class JPopupMenuItemActionListener {&lt;br /&gt;
  public static void main(final String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;PopupSample Example&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    // Create popup menu, attach popup menu listener&lt;br /&gt;
    JPopupMenu popupMenu = new JPopupMenu(&amp;quot;Title&amp;quot;);&lt;br /&gt;
    ActionListener actionListener = new PopupActionListener();&lt;br /&gt;
    // Cut&lt;br /&gt;
    JMenuItem cutMenuItem = new JMenuItem(&amp;quot;Cut&amp;quot;);&lt;br /&gt;
    popupMenu.add(cutMenuItem);&lt;br /&gt;
    // Copy&lt;br /&gt;
    JMenuItem copyMenuItem = new JMenuItem(&amp;quot;Copy&amp;quot;);&lt;br /&gt;
    copyMenuItem.addActionListener(actionListener);&lt;br /&gt;
    popupMenu.add(copyMenuItem);&lt;br /&gt;
    // Paste&lt;br /&gt;
    JMenuItem pasteMenuItem = new JMenuItem(&amp;quot;Paste&amp;quot;);&lt;br /&gt;
    pasteMenuItem.addActionListener(actionListener);&lt;br /&gt;
    pasteMenuItem.setEnabled(false);&lt;br /&gt;
    popupMenu.add(pasteMenuItem);&lt;br /&gt;
    // Separator&lt;br /&gt;
    popupMenu.addSeparator();&lt;br /&gt;
    // Find&lt;br /&gt;
    JMenuItem findMenuItem = new JMenuItem(&amp;quot;Find&amp;quot;);&lt;br /&gt;
    findMenuItem.addActionListener(actionListener);&lt;br /&gt;
    popupMenu.add(findMenuItem);&lt;br /&gt;
    JButton label = new JButton();&lt;br /&gt;
    frame.add(label);&lt;br /&gt;
    label.setComponentPopupMenu(popupMenu);&lt;br /&gt;
    frame.setSize(350, 250);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Creating a Popup Menu ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.event.MouseAdapter;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.JPopupMenu;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    final JPopupMenu menu = new JPopupMenu();&lt;br /&gt;
    JMenuItem item = new JMenuItem(&amp;quot;Item Label&amp;quot;);&lt;br /&gt;
//  item.addActionListener(actionListener);&lt;br /&gt;
    menu.add(item);&lt;br /&gt;
    JButton component = new JButton(&amp;quot;button&amp;quot;);&lt;br /&gt;
    component.addMouseListener(new MouseAdapter() {&lt;br /&gt;
      public void mousePressed(MouseEvent evt) {&lt;br /&gt;
        if (evt.isPopupTrigger()) {&lt;br /&gt;
          menu.show(evt.getComponent(), evt.getX(), evt.getY());&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      public void mouseReleased(MouseEvent evt) {&lt;br /&gt;
        if (evt.isPopupTrigger()) {&lt;br /&gt;
          menu.show(evt.getComponent(), evt.getX(), evt.getY());&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Creating a Popup Menu with Nested Menus ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JPopupMenu;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    final JPopupMenu popupMenu = new JPopupMenu();&lt;br /&gt;
    JMenu submenu = new JMenu(&amp;quot;SubMenu1&amp;quot;);&lt;br /&gt;
    submenu.add(&amp;quot;asdf&amp;quot;);&lt;br /&gt;
    submenu.add(&amp;quot;asdf&amp;quot;);&lt;br /&gt;
    // Add submenu to popup menu&lt;br /&gt;
    popupMenu.add(submenu);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Customizing JPopupMenu Look and Feel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Property StringObject TypePopupMenu.actionMapActionMapPopupMenu.backgroundColorPopupMenu.borderBorderPopupMenu.consumeEventOnCloseBooleanPopupMenu.fontFontPopupMenu.foregroundColorPopupMenu.popupSoundStringPopupMenu.selectedWindowInputMapBindingsObject[ ]PopupMenu.selectedWindowInputMapBindings.RightToLeftObject[ ]PopupMenuSeparatorUIStringPopupMenuUIString&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Force the popup menu of a JMenu to be heavyweight: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JMenu menu = new JMenu(&amp;quot;Menu Label&amp;quot;);&lt;br /&gt;
    menu.add(new JMenuItem(&amp;quot;Item Label&amp;quot;));&lt;br /&gt;
    boolean lwPopup = menu.getPopupMenu().isLightWeightPopupEnabled(); // true&lt;br /&gt;
    menu.getPopupMenu().setLightWeightPopupEnabled(false);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Forcing a Popup Menu to Be a Heavyweight Component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JPopupMenu;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JPopupMenu popupMenu = new JPopupMenu();&lt;br /&gt;
    boolean lwPopup = popupMenu.isLightWeightPopupEnabled(); // true&lt;br /&gt;
    popupMenu.setLightWeightPopupEnabled(false);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  JPopupMenu: the container for pop-up menu components ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Adding Menu Items to a JPopupMenu&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public JMenuItem add(JMenuItem menuItem);&lt;br /&gt;
public JMenuItem add(String label);&lt;br /&gt;
public JMenuItem add(Action action);&lt;br /&gt;
public void addSeparator();&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  To display JPopupMenu on an AWT component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If you need to enable the display of a Panel (an AWT component), you can configure it at the individual &lt;br /&gt;
JPopupMenu level or for your entire applet or application.&lt;br /&gt;
At the individual pop-up level, just set the lightWeightPopupEnabled property to false.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The setInheritsPopupMenu() method accepts a boolean argument. &lt;br /&gt;
When true, and no component pop-up menu has been directly set for the component, the parent container will be explored for a pop-up.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;At the system level, this is done as follows:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
// From now on, all JPopupMenus will be heavyweight&lt;br /&gt;
JPopupMenu.setDefaultLightWeightPopupEnabled(false);&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using PopupMenuListener ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.JPopupMenu;&lt;br /&gt;
import javax.swing.event.PopupMenuEvent;&lt;br /&gt;
import javax.swing.event.PopupMenuListener;&lt;br /&gt;
// Define PopupMenuListener&lt;br /&gt;
class MyPopupMenuListener implements PopupMenuListener {&lt;br /&gt;
  public void popupMenuCanceled(PopupMenuEvent popupMenuEvent) {&lt;br /&gt;
    System.out.println(&amp;quot;Canceled&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public void popupMenuWillBecomeInvisible(PopupMenuEvent popupMenuEvent) {&lt;br /&gt;
    System.out.println(&amp;quot;Becoming Invisible&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public void popupMenuWillBecomeVisible(PopupMenuEvent popupMenuEvent) {&lt;br /&gt;
    System.out.println(&amp;quot;Becoming Visible&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class PopupMenuListenerDemo {&lt;br /&gt;
  public static void main(final String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;PopupSample Example&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    // Create popup menu, attach popup menu listener&lt;br /&gt;
    JPopupMenu popupMenu = new JPopupMenu(&amp;quot;Title&amp;quot;);&lt;br /&gt;
    PopupMenuListener popupMenuListener = new MyPopupMenuListener();&lt;br /&gt;
    popupMenu.addPopupMenuListener(popupMenuListener);&lt;br /&gt;
    // Cut&lt;br /&gt;
    JMenuItem cutMenuItem = new JMenuItem(&amp;quot;Cut&amp;quot;);&lt;br /&gt;
    popupMenu.add(cutMenuItem);&lt;br /&gt;
    // Copy&lt;br /&gt;
    JMenuItem copyMenuItem = new JMenuItem(&amp;quot;Copy&amp;quot;);&lt;br /&gt;
    popupMenu.add(copyMenuItem);&lt;br /&gt;
    // Paste&lt;br /&gt;
    JMenuItem pasteMenuItem = new JMenuItem(&amp;quot;Paste&amp;quot;);&lt;br /&gt;
    pasteMenuItem.setEnabled(false);&lt;br /&gt;
    popupMenu.add(pasteMenuItem);&lt;br /&gt;
    // Separator&lt;br /&gt;
    popupMenu.addSeparator();&lt;br /&gt;
    // Find&lt;br /&gt;
    JMenuItem findMenuItem = new JMenuItem(&amp;quot;Find&amp;quot;);&lt;br /&gt;
    popupMenu.add(findMenuItem);&lt;br /&gt;
    JButton label = new JButton();&lt;br /&gt;
    frame.add(label);&lt;br /&gt;
    label.setComponentPopupMenu(popupMenu);&lt;br /&gt;
    frame.setSize(350, 250);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>