在程序界面上如果按钮比较少,可以通过逐个添加事件监听器。
请问如果在有大量按钮的情况下:有没有一种方法能够批量注册事件鉴听器?
具体的说就是:
    类似于扫雷这种游戏,我可以通过先注册一个按钮数组,让按钮大批量显示出来。
    但是我不知道怎样大批量的注册事件监听器(或者有其他好的办法可以解决)。最终目的是注册了以后可以对具体每个按钮发生的点击事件做出正确的反应。
请高手执教

解决方案 »

  1.   

    象扫雷这种,每个按钮的事件响应都是一样的,那你就可以先建好一个ActionListener,然后当你每new一个按钮的之后下面紧接着给他addActionListener就可以了很久以前写过一个扫雷的简单实现for(int x=0;x<size;x++)
      {
       for(int y=0;y<size;y++)
       {
        /*雷区中的地雷数量占一定比例
         * 要设置游戏的难度,只要修改difficulty的值即可
         * 这里只是简单的直接设置为6
         */
        int ratype=(int)(Math.random()*20);
        if(ratype<difficulty)
        {
         //添加一个地雷
         gameButton[x][y]=new myButton("Bomb",x,y);
        }
        else{
        //添加一个普通的格子
         gameButton[x][y]=new myButton("Grid",x,y);
        }
        
        /*
         * 为格子添加事件监听器
         */
        gameButton[x][y].addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent e)
         {
          myButton _Button=(myButton)e.getSource();
          if(_Button.getType().equalsIgnoreCase("Bomb"))
          {
           bombHandl(_Button); 
          }
          else
          {
           gridHandl(_Button);
          }
          
         }
        });
        JPanel1.add(gameButton[x][y]);
       }
       
      }
    ----------------
    以前写的了,现在看了一下,每个按钮都new一个ActionListener好像没有必要
    先new好ActionListener然后所有按钮都用同一个ActionListener应该也是可以的