class X{
  JTextField arr[]= new JTextField[SIZE];
  int lastIndex = 0;
  public void actionPerformed(ActionEvent e) {
     lastIndex++;
     if(lastIndex >= SIZE)
        return;
     arr[lastIndex] = new JTextField();
     ....
  }
  ...
}

解决方案 »

  1.   

    size是什么啊,我事先不知道要生成多少个textField阿
      

  2.   

    java.util.Vector v = new Vector();
    ...
    v.add(new JTextField());
      

  3.   

    我用的就是vector,可是没有办法给每一个textField编号。最好生成的是一个总号!!
      

  4.   

    v.size()就是总号,每一个的编号就是i, v.get(i)就是该对象.
      

  5.   

    假如第一个编号是1,我随便点一个textfield ,给他负值setText(编号),这个编号怎么得到阿???
      

  6.   

    我有点迷惑. 你是不是想动态生成一堆textfield,然后再用在其中写值的方法给它们编号?
    最好能把你的问题再具体地说一下.
      

  7.   

    这些textfield能增加,也能删除,点击其中一个就得到他的号码。点哪个得到哪个的号码!!拜托了!!!
      

  8.   

    顺便说一下,我那个不是纯Jtextfield,我做了一个jtextfield的扩展类,这些jtextfield是可以在面板上面移动的!!!!!!
      

  9.   

    f.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            JTextField o = (JTextField)e.getSource();
            changeOrder(o);
         }
      });
      ...
          static Vector v = new Vector();      public static void changeOrder(JTextField o) {
             try{
                int newPosition = Integer.parseInt(o.getText().trim());
                for(int i = 0; i < v.size(); i++) {
                   if(!v.get(i).equals(o))
                      continue;               v.remove(i);
                   v.add(newPosition,o);
                   return;
                }
             }catch(Exception e){}
          }
      

  10.   

    hellall 
    你的这就话是错的
    int newPosition = Integer.parseInt(o.getText().trim());
    o.getText(), 是一个字符串,不能转换成int
      

  11.   

    把问题这样归结一下,不知你同意否?
    1.一堆JTextField放在Vecter中.
    2.在Vecter中的次序就是编号.
    3.点击其中一个,得到其编号并setText(编号)
      

  12.   

    对不起,问题是这样的,一个按钮用来动态生成很多个textField,这些textField的settext都是从数据库里面得到的值,如果我点击其中某一个textField, 将会得到这个textField的序号,然后我就可以对其进行修改内容,或者删除这个textfield,因为数据库里面,要我得到添加这些textfield的每个序号。
      

  13.   

    "如果我点击其中某一个textField, 将会得到这个textField的序号"==>用setText(序号)在其中显示?
      

  14.   

    在其中不现实序号,显示数据库里的内容,我只是想得到用户选择了那个textfield
      

  15.   

    class MyTextField extends JTextField {
       public int number;
       public MyTextField(int number) {
          this.number = number;
          setToolTipText(""+number);
       }
       // ...
       // your implementation
    }
      static int TOTAL_FIELDS = 0;
      btnAdd.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            v.add(new MyTextField(++TOTAL_FIELDS));
         }
      });
      

  16.   

    什么短信阿、手机阿,对了,我原来使用了TOTAL_FIELDS++,怎么后来他们全是一个号了
      

  17.   

    很高兴. 
    http://www.csdn.net/Questionnaire/award1.asp?id=40
      

  18.   

    hellall告诉我你的信箱好吗?有问你可以向你请教,谢了
      

  19.   

    还有一个问题,每次这个textfield的内容我怎么给他啊。我也不能用textfield(“str”)了
      

  20.   

    哥们,那我每次取这个值的话,我还得每次都实例化这个扩展类阿!!!==>不太懂你的意思.取值是在一个实例上进行的,没有实例如何做?
    每次这个textfield的内容我怎么给他啊.==>他是谁? textfield.setText("str")?
    你可以用
      MyTextField f = new MyTextField("str"); //
      f.number = 12345;
      v.add(f);我的信箱爆了.很长时间不去看了. 还是用短信吧. 参见. http://www.csdn.net/Questionnaire/award1.asp?id=40
      

  21.   

    hellall, 按照你的办法,我在面板上增加了一个删除按钮,每次删除制定序号的textfield,可是那个textfield怎么也不能去到,v.remove(i),面板也updateUI了!!!!
      

  22.   

    panel.remove(textfield);
    v.remove(i);
      

  23.   

    panel.remove(textfield);
    v.remove(i);
    hellall 如果你这么删的话,比如面板上面有7个textfield,他们的编号从0到6,我随便选择一个编号为3的textfield,因为这些号码,已经在初始化的时候给了,那么这个面板将给他们重新排号,也就是说最后一个的号码变成了5(面板上面的控件顺序),如果我去删那个原来编号为6的textfield,系统将会报错。这个问题怎么解决阿!!!!!!!!1
      

  24.   

    Please open a new thread.
    You can use:
      panel.remove(textfield);
      v.remove(textfield);