Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #29652

Problem getting the JPopupMenu from the Action it generates

Path csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From Knute Johnson <eternal@knutejohnson.com>
Newsgroups comp.lang.java.programmer
Subject Problem getting the JPopupMenu from the Action it generates
Date Tue, 12 Aug 2014 17:39:10 -0700
Organization A noiseless patient Spider
Lines 86
Message-ID <lsec34$d64$1@dont-email.me> (permalink)
Mime-Version 1.0
Content-Type text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding 7bit
Injection-Date Wed, 13 Aug 2014 00:39:00 +0000 (UTC)
Injection-Info mx05.eternal-september.org; posting-host="aba33539224e5c782fe0c4053f7756fd"; logging-data="13508"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19ge9mxK9tCwFTZkIq/DbHC"
User-Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.0
Cancel-Lock sha1:9XcTNCDukJcf1j1ROTmv+dvTgos=
Xref csiph.com comp.lang.java.programmer:29652

Show key headers only | View raw


I'm having a problem getting the JPopupMenu from an Action that is 
generated by the JPopupMenu.  The error is a ClassCastException and it 
is saying that what is returned by ActionEvent.getSource() cannot be 
cast to a JPopupMenu because it is a JPopupMenu$1.  JPopupMenu$1 is an 
anonymous class and shouldn't be returned by ActionEvent.getSource().

In the end, I'm trying to get to the component that was right clicked to 
pop up the menu.

I'm stumped, any ideas?

Thanks,


C:\Users\Knute Johnson\com\knutejohnson\cookbook>java test
javax.swing.JPopupMenu$1[,1,3,97x21,invalid,alignmentX=0.0,alignmentY=0.0,border
=javax.swing.plaf.metal.MetalBorders$MenuItemBorder@23b2ab4,flags=264,maximumSiz
e=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,
margin=javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2],paintBor
der=true,paintFocus=false,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rollo
verSelectedIcon=,selectedIcon=,text=do something]

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: 
javax.swing
.JPopupMenu$1 cannot be cast to javax.swing.JPopupMenu
         at test$someAction.actionPerformed(test.java:29)
         at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
         at javax.swing.AbstractButton$Handler.actionPerformed(Unknown 
Source)
         at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown 
Source)
         at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
         at javax.swing.AbstractButton.doClick(Unknown Source)
         at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
         at 
javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown
Source)
         at java.awt.Component.processMouseEvent(Unknown Source)
         at javax.swing.JComponent.processMouseEvent(Unknown Source)
         ...


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class test extends JFrame {
     final JPopupMenu popupMenu;

     public test() {
         setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

         popupMenu = new JPopupMenu();
         popupMenu.add(new someAction());

         JTextField tf = new JTextField("textField");
         tf.setComponentPopupMenu(popupMenu);
         add(tf,BorderLayout.CENTER);
         pack();
         setVisible(true);
     }

     public class someAction extends AbstractAction {
         public someAction() {
             putValue(NAME,"do something");
         }

         public void actionPerformed(ActionEvent ae) {
             System.out.println(ae.getSource());
             System.out.println();
             System.out.println((JPopupMenu)ae.getSource());
         }
     }

     public static void main(String... args) {
         EventQueue.invokeLater(new Runnable() {
             public void run() {
                 new test();
             }
         });
     }
}

-- 

Knute Johnson

Back to comp.lang.java.programmer | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

Problem getting the JPopupMenu from the Action it generates Knute Johnson <eternal@knutejohnson.com> - 2014-08-12 17:39 -0700
  Re: Problem getting the JPopupMenu from the Action it generates Steven Simpson <ss@domain.invalid> - 2014-08-13 08:37 +0100
    Re: Problem getting the JPopupMenu from the Action it generates FredK <fred.l.kleinschmidt@gmail.com> - 2014-08-13 08:02 -0700
      Re: Problem getting the JPopupMenu from the Action it generates Knute Johnson <eternal@knutejohnson.com> - 2014-08-13 08:43 -0700
        Re: Problem getting the JPopupMenu from the Action it generates Mike Amling <mamling@chaff.us> - 2014-08-14 00:12 -0500
        Re: Problem getting the JPopupMenu from the Action it generates Steven Simpson <ss@domain.invalid> - 2014-08-14 09:54 +0100
          Re: Problem getting the JPopupMenu from the Action it generates Knute Johnson <eternal@knutejohnson.com> - 2014-08-14 19:20 -0700

csiph-web