其实如果你整个项目有很多,按钮之类的,其实可以把这些写在配置文件当中。
如:jMenuItem=jMenuItem1,jMenuItem2……

解决方案 »

  1.   

    用父类jMenuItemBase 统一 addListener 
    然后每个子类都继承一下
    Class jMenuItem1 extends jMenuItemBase
    Class jMenuItem2 extends jMenuItemBase
    ...
    子类根据需要重新处理
      

  2.   

    用数组循环到是可以,不过我是用NetBeans添加的,我不想在把每个菜单项,都添加在1个数组里,这样我还不如直接加监听,现在100多个菜单项(jMenuItem),都是没有加入数组的,怎么可以实现不用数组循环,就可以全部加监听
      

  3.   

    子类化监听适配器!为每个菜单设置id。在这个子类中根据id 实现不同的方法
      

  4.   

    你的不同菜单应该是处理不同逻辑的,而不同的业务逻辑的ActionListener实现是不一样的,除非你把菜单的id弄成有规律的,放到list里面,事件也做成有规律的,放到list中。比如
    for(int i=0; i<100; i++){
        menuList.get(i).addActionListener(actionList.get(i));
    }
      

  5.   

    自己找到解决方法:    //给所有jMenuItem添加监听
        for(int i = 0; i<jMenuBar1.getMenuCount();i++)//getMenuCount()返回jMenuBar上的jMenu数
        {   
            JMenu jm = jMenuBar1.getMenu(i);//返回指定位置的JMenu
            if(jm  !=  null)
            {
                 for(int j = 0; j<jm.getMenuComponentCount();j++)//getMenuComponentCount()返回jMenu上的jMenuItem数
                 {
                      if(jm.getMenuComponent(j)  instanceof  JMenuItem)//返回指定位置的Component(即jMenuItem)
                      {
                          ((JMenuItem)jm.getMenuComponent(j)).addActionListener(this);       
                      }
                 }          
            }        
        }