public void actionPerformed(ActionEvent arg0) {  if (jTextField1 != null) {  for (int i = 0; i < gamer.length; i++) {
 gamer[i] = new Player();
 String gamersName = jTextField1.getText();
 gamer[i].name = gamersName;
 this.dispose();
 }
                 for (int j = 0; j < gamer.length; j++) {
   System.out.println(gamer[j].toString()+j);
 
   System.out.println("ending....");
 } }}
我这是一个button的响应方法。往jtextfield中输入值后,将值赋给数组对象的name属性。这样写是有问题的,一次会创建数组长度大小个对象,而且全都赋的值是一样,要怎么改改才能解决这个问题。
大神们帮我看看是哪出了问题。我这小菜鸟给各位谢谢了。

解决方案 »

  1.   

    这个不知到你要达到什么效果,gamer[]是全局变量么?
      

  2.   

    看你的数组下标 每次都是从0开始你认为数组中的数据会一个一个的添加上去吗?(没点一次I都是从0开始)我觉得你可以试试吧index放到响应事件的外面
      

  3.   

    你每点击一次按钮,就执行一遍循环,jTextField1.getText()始终只有一个值,当然每个数组元素都一样的name
    如果你希望每个数组元素有不同的name,那就别用循环,每次往TextField里面输入一个值就好了。
      

  4.   

    表达的不是很清楚,依照我的理解,你需要将数组设计为一个全局静态变量,并且循环的变量也要是全局的。其实如果你写的应用很大的话,你可以将监听类设计为一个实现自actionlister的单例类。
      

  5.   

    那这个意思是把这个方法的循环去掉,然后在main方法中对这个jtextfield进行多次调用,是吗