要求,用循环创建10个按钮,用循环给每个按钮加上监听,不可以不用循环

解决方案 »

  1.   

    button数组似乎可以,但是要求不许用
      

  2.   


    <script type="text/javascript">
      function ff(value){
         alert(value)
      }
    </script>
    <body>
          <%for(int i=0;i<=10;i++){%>
          <button onclick="ff('<%= i %>')">aa<%= i %></button>
         <% } %>
    </body>
      

  3.   

    private Lisener getLisener()
    {
        return new Lisener();
    }private void test()
    {
        for(int i = 0;i<10;i++)
        {
            JButton btn = new JButton().addLisener(getLisener());
        }
    }  如需要存起来就new ArrayList<JButton>()存;
      

  4.   


    嘿嘿,直接add到容器组件里面不更好?ArrayList什么的,不跟数组差不多嘛。
      

  5.   

    你应该是做计算器吧!!这个可以看一下;
    http://blog.csdn.net/zhaoming262350/article/details/8250807
    这样实现:
     String str="123+456-789*0.=/";
          for(int i=0;i<allButtons.length;i++)
          {
           allButtons[i]=new JButton(str.substring(i,i+1));
         }
      

  6.   

    当创建后,在响应监听的时候你是不是还得把这10个按钮区分开? for(int i = 0; i < 10; i++)
    {
    JButton b = new JButton("button" + i);
    b.setActionCommand("b"+i);//可以通过这个数值来区分每个button有个getActionCommand()方法
    b.addActionListener(new MyListener());//监听自己写吧
    }
      

  7.   

    class NumberAction extends AbstractAction { ... }for(int i = 0; i < 10; i++){
        buttons[i] = new JButton(new NumberAction(i));
    }
      

  8.   

    果然高手多。不过我自己搞出来了吗,思路大同小异,建立一个监听类,就是在循环创建button时用new,把button立即用参数传到监听类里,button就不会被回收,谢谢大家