当前位置:  技术问答>java相关

◎◎◎◎为什么我的Japplet上的JPopupMenu的MenuItem无法响应??◎◎◎◎◎

    来源: 互联网  发布时间:2015-05-07

    本文导语:  目的是在applet上实现一个popup的菜单,其中菜单项单击后展开链接。 public class Topol extends JApplet{     public void init(){        contentPane = getContentPane();         contentPane.addMouseListener(new MouseAdapter(){     ...

目的是在applet上实现一个popup的菜单,其中菜单项单击后展开链接。

public class Topol extends JApplet{
    public void init(){
       contentPane = getContentPane(); 
       contentPane.addMouseListener(new MouseAdapter(){   
           public void mousePressed(MouseEvent e){
      System.out.println("detected mouse mousePressed event!");
               showpopup(e);
           }
  public void mouseClicked(MouseEvent e){
      System.out.println("detected mouse mouseClicked event!");
               showpopup(e);
  }
           public void mouseReleased(MouseEvent e){
      System.out.println("detected mouse mouseReleased event!");
               showpopup(e);
  }     
       });
   
       bearerbox_menu = new JPopupMenu();
       JMenuItem bb_MenuItem[] = new JMenuItem[6];
       bb_MenuItem[0] = new JMenuItem("item1");
       bb_MenuItem[1] = new JMenuItem("item2");
       ...
       bb_MenuItem[0].addMenuKeyListener(new myMenuKeyAdaptor());
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~问题可能就是这里
    .......
   }
   
   void showpopup(MouseEvent e){       
       bearerbox_menu.setLocation(cenx + imgwt/2,ceny + imght/2);
       bearerbox_menu.show(e.getComponent(),e.getX(),e.getY());     
       System.out.println("@@@@@@bearerbox_node menu popuped@@@@@@@@@@");
   }
}

class myMenuKeyAdaptor  implements MenuKeyListener {

     public myMenuKeyAdaptor() {
     System.out.println"######################################");
     }

     public void menuKeyTyped(MenuKeyEvent e){
System.out.println"#########################################");
     }
     public void menuKeyPressed(MenuKeyEvent e){
System.out.println"##########################################");     }
     public void menuKeyReleased(MenuKeyEvent e){
System.out.println"##########################################")
     }
     ......
}


现在的问题是popupmenu弹出正常,但是其中item被pressed或者typed等事件仍处理为contentPane的mouseClick事件,就是bb_MenuItem[0].addMenuKeyListener(new myMenuKeyAdaptor());一句似乎没有执行成功(但是也没有异常抛出)。
   给JMenuItem添加的Listener还有什么比MenuKeyListener更合适的呢?ft!
   可是这个接口就是没有把事件diepatch成功!我哭!!!!!!!!!!谁来救救我阿。。。。。。。

|
不要急,听我的.
直接的new JMenuItem("item1");是无法响应事件的.
如果你希望POPUPMENU中的项响应事件,你需要做几个COMPONENT,然后将这些作为POPUPMENU的ADD参数,如下例:
    private class RefreshAction extends AbstractAction{
        public RefreshAction(){
            super("刷新所选类别");
        }
        public void actionPerformed(ActionEvent e){
            showStatus("正在刷新所选类别... ...");
            reloadCategoryNode(selectedCategory);
            showStatus("所选类别已刷新");
        }
    }
bearerbox_menu.add(RefreshAction);
这样就可以了,试试

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.swing类japplet.accessiblejapplet的类成员方法: japplet.accessiblejapplet定义及介绍
  • JApplet和Applet到底有什么区别?
  • java命名空间javax.swing类japplet的类成员方法: getaccessiblecontext定义及介绍
  • 关于JApplet
  • java命名空间javax.swing类japplet的类成员方法: paramstring定义及介绍
  • Applet和JApplet有什么区别?
  • java命名空间javax.swing类japplet的类成员方法: rootpanecheckingenabled定义及介绍
  • 如何让JFrame失去焦点后仍停留在JApplet的上面
  • java命名空间javax.swing类japplet的类成员方法: accessiblecontext定义及介绍
  • 用com.sun.java.swing 里的japplet 代替 原来的applet是不是可以啊???
  • java命名空间javax.swing类japplet的类成员方法: rootpane定义及介绍
  • Swing中的Japplet能否在网页上正常现实?? 谢谢赐教
  • java命名空间javax.swing类japplet的类成员方法: getjmenubar定义及介绍
  • 如何在JApplet下使用模式化的JDialog?
  • java命名空间javax.swing类japplet的类成员方法: setjmenubar定义及介绍
  • 怎样才能在IE5.0中打开JDK1.2写的JApplet?
  • java命名空间javax.swing类japplet的类成员方法: setrootpane定义及介绍
  • JPS(也可以说是HTML)中如何使用JApplet?
  • java命名空间javax.swing类japplet的类成员方法: setrootpanecheckingenabled定义及介绍
  • VAJ中父类JApplet为缺失是不是因为没有swing包?那swing包又怎么加载呢?
  • java命名空间javax.swing类japplet的类成员方法: gettransferhandler定义及介绍
  • Web服务器/前端 iis7站长之家


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3