以下有三个类:
RF_Button_Listener.class  是按钮监听
RF_Number.class  是一组  组件
RF_Index.class 是主类运行后 我点击按钮会生一个组 组件。问题是我如何分别给这些组件中的JTextField设置值。

解决方案 »

  1.   

    package Test;import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.JButton;public class RF_Button_Listener {
    private JButton index_add;
    private JButton index_set;
    private JButton index_close; public RF_Button_Listener() {
    this.index_add = RF_Index.add_button;
    this.index_set = RF_Index.set_button;
    this.index_close = RF_Index.close_button;
    addListener();
    } public void addListener() {
    index_add.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
    RF_Number.rf_num = new RF_Number("" + RF_Number.i);
    RF_Index.main_panel.add(RF_Number.rf_num);
    if (RF_Index.main_panel.getComponentCount() > 1) {
    index_set.setEnabled(true);
    }
    RF_Index.rf_index.validate();
    RF_Index.rf_index.repaint();
    }
    }); index_set.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
    //分别设置组件的JTextField
    RF_Index.rf_index.validate();
    RF_Index.rf_index.repaint();
    }
    });
    index_close.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
    System.exit(-1);
    }
    });
    }
    }
      

  2.   

    package RF_Test;import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;public class RF_Number extends JPanel {
    public static RF_Number rf_num;
    private JLabel sensor_num;
    private JLabel num;
    private JLabel version_num;
    private static JTextField text1;
    private static JTextField text2;
    public static int i = 1; public RF_Number(String Number) {
    sensor_num = new JLabel(Number + "号传感器  ");
    num = new JLabel("序号:");
    version_num = new JLabel("版本号:");
    text1 = new JTextField(8);
    text2 = new JTextField(8);
    i++;
    add(sensor_num);
    add(num);
    add(text1);
    add(version_num);
    add(text2);
    } public static JTextField getText1() {
    return text1;
    } public static void setText1(String text1) {
    RF_Number.text1.setText(text1);
    } public static JTextField getText2() {
    return text2;
    } public static void setText2(String text2) {
    RF_Number.text2.setText(text2);
    }}
      

  3.   

    package Test;import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.Toolkit;import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;public class RF_Index extends JFrame {
    public static RF_Index rf_index;
    public static JButton add_button;
    public static JButton set_button;
    public static JPanel main_panel;
    private JPanel button_panel;
    public static JButton close_button;
    private String close = "关闭";
    private String add = "添加";
    private String del = "设置参数"; private RF_Index() {
    setLayout(new BorderLayout());
    setSize(330, 300);
    Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
    setLocation((int) (size.getWidth() - this.getWidth()) / 2, 50); main_panel = new JPanel();
    RF_Number.rf_num = new RF_Number("" + RF_Number.i);
    main_panel.add(RF_Number.rf_num);
    add(main_panel, BorderLayout.CENTER); button_panel = new JPanel();
    set_button = new JButton(del);
    add_button = new JButton(add);
    set_button.setEnabled(false);
    close_button = new JButton(close); button_panel.add(add_button);
    button_panel.add(set_button);
    button_panel.add(close_button);
    new RF_Button_Listener();
    add(button_panel, BorderLayout.SOUTH);
    } public static void main(String[] args) {
    rf_index = new RF_Index();
    rf_index.setVisible(true);
    rf_index.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}
      

  4.   

    放到list里面,然后遍历出来,试过了不可以。总会把值给 最后一个创建的对象。真不知道是为什么!没道理啊。
      

  5.   


    可能你的List里面add的时候是在for外面new的,试着把new放到for里面去
      

  6.   


    我代码里面是,点击一下按钮生成一组控件,然后放到LIST中去,
    我遍历出来给 JTextField.setText("X");
    但最后“X”值显示在最后创建的一个组件里面。
      

  7.   

    今天我又试了一下。
    我点击一下按钮创建 JButton jb = new JButton();
    然后把 list.add(jb);
    最后Iterator出来,给创建的jb.setText("X");
    达到了我要的效果!为什么点一下按钮创建 RF_Number.rf_num = new RF_Number();这个对象,最后遍历出来就不可给每个创建的对象设置参数呢?