如何用不同的引用名称实例化一个类x次?

时间:2018-04-03 16:59:28

标签: java object

我在java中编写一个应该从用户那里得到一些输入的程序。我正在使用swing进行GUI。该程序首先打开一个用户键入字符串的窗口。然后程序决定字符串中有多少个字母字符(abc ... z)。当用户按下回车键时,会弹出一个新窗口。这个窗口为第一个字符串中的每个字符都有一堆选项。当我想创建这些选项时出现问题(在第一个字符串中,每个字符有两个JTextField和一个JTextBox)。这些组件中的每一个(当然)都是一个对象,但是我如何实例化一个类x次并保持引用其变量的对象的能力(或者在这种情况下是每个JTextField的文本)。

正如我从在线阅读中理解的那样,每当我用类似的东西实例化一个类时:object Example = new object() 两次,我创建的第一个对象osn不再引用,我无法从中检索任何东西,或对它做任何事情,这导致它被标记为未引用并且有资格进行垃圾收集。

如果有人想看看我试图做什么,但后来意识到我再也无法引用这些对象了,重新定义了引用名称,这里是实例化类的循环:

for(int i = 0; i < VariableAmount; i++) {
        JLabel VariableLabel = new JLabel(VariableList.get(i) + "     =");
        springLayout.putConstraint(SpringLayout.NORTH, VariableLabel, 30 * i + 10, SpringLayout.NORTH, frame.getContentPane());
        springLayout.putConstraint(SpringLayout.WEST, VariableLabel, 10, SpringLayout.WEST, frame.getContentPane());
        springLayout.putConstraint(SpringLayout.EAST, VariableLabel, 50, SpringLayout.WEST, frame.getContentPane());
        frame.getContentPane().add(VariableLabel);

        JCheckBox isInterval = new JCheckBox("Interval");
        springLayout.putConstraint(SpringLayout.NORTH, isInterval, 30 * i + 7, SpringLayout.NORTH, frame.getContentPane());
        springLayout.putConstraint(SpringLayout.EAST, isInterval, -10, SpringLayout.EAST, frame.getContentPane());
        springLayout.putConstraint(SpringLayout.WEST, isInterval, -80, SpringLayout.EAST, frame.getContentPane());
        frame.getContentPane().add(isInterval);

        VariableValue = new JTextField();
        springLayout.putConstraint(SpringLayout.NORTH, VariableValue, 30 * i + 10, SpringLayout.NORTH, frame.getContentPane());
        springLayout.putConstraint(SpringLayout.WEST, VariableValue, 10, SpringLayout.EAST, VariableLabel);
        springLayout.putConstraint(SpringLayout.EAST, VariableValue, -250, SpringLayout.EAST, frame.getContentPane());
        frame.getContentPane().add(VariableValue);
        VariableValue.setColumns(10);

        VariablePlusMinus = new JTextField();
        springLayout.putConstraint(SpringLayout.NORTH, VariableValue, 30 * i + 10, SpringLayout.NORTH, frame.getContentPane());
        springLayout.putConstraint(SpringLayout.WEST, VariableValue, 10, SpringLayout.EAST, VariableValue);
        springLayout.putConstraint(SpringLayout.EAST, VariableValue, -90, SpringLayout.EAST, frame.getContentPane());
        frame.getContentPane().add(VariableValue);
        VariableValue.setColumns(10);
    }

所以从更一般的角度看这个,我需要帮助的是用不同的引用名称实例化一个类x次(不太确定这是否可行)。

我知道这有点宽泛,我很抱歉,但这是我过去需要相当多次的事情。 Sry我的英语和我的代码(编程新手)。

1 个答案:

答案 0 :(得分:0)

您可以在这里使用ArrayList。在循环内部,您可以将每个对象添加到相应的列表中。当您退出循环时,每次迭代中创建的所有对象都将添加到列表中。每当您想要访问单个对象时,您都可以使用list iterator。

python