Java 创建类的独立对象

Java 创建类的独立对象,java,Java,我想创建一个类中多个相互独立的对象 我在for循环中多次调用类构造函数,但如何识别这些对象呢 我尝试使用一个静态变量,该变量接受for循环索引的值,但该变量假定为for循环的最后一个索引的值 代码如下: Maingui.java public class Maingui extends JFrame { public static JFrame frame; public static JButton runButton; public Maingui() throw

我想创建一个类中多个相互独立的对象

我在for循环中多次调用类构造函数,但如何识别这些对象呢

我尝试使用一个静态变量,该变量接受for循环索引的值,但该变量假定为for循环的最后一个索引的值

代码如下:

Maingui.java

public class Maingui extends JFrame {

    public static JFrame frame;
    public static JButton runButton;

    public Maingui() throws IOException {

        frame = new JFrame("maingui");
        setSize(1024,700);
        setTitle("maingui");
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);

        setLayout(new BorderLayout());

        runButton = new JButton("Run");
        runButton.addActionListener(new RunBtnListener());
        add(runButton);

    }
}
RunBtnListener.java

public class RunBtnListener implements ActionListener {

    ArrayList<SecondGui> menus = new ArrayList<SecondGui>();

    public void actionPerformed(ActionEvent e) {

        for(int i = 0; i < 2; i++) {

            menus.add(new SecondGui(i));

        }

    }

}
当我在
SecondGui
GUI中单击按钮
按钮时,输出总是
1
。 但我希望输出将是
0
1
,这取决于我在哪个GUI中选择按钮

我想创建一个类的多个独立对象 一个接一个

当前代码在此循环中创建了两个独立的对象

    for(int i = 0; i < 2; i++) {

        menus.add(new SecondGui(i));
    }

您是否尝试使用非
静态
类属性?如果你有,为什么它对你不起作用?
    for(int i = 0; i < 2; i++) {

        menus.add(new SecondGui(i));
    }
public class SecondGui extends JFrame {

    private int c = 0;
    private JFrame frame;
    private JButton button;

    public SecondGui(int i) {

        this.c = i;
        initialize();
    }

    void initialize() {

        frame = new JFrame("Test");
        setSize(1024,700);
        setTitle("Menu");
        setLocationRelativeTo(null);
        setVisible(true);
        this.setLocation(50*i, 50*i);

        // Set layout manager
        setLayout(new BorderLayout());

        button = new JButton("B");
        button.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("C: " + c);

            }

        });

        add(button);
     }

}