我在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我的英语和我的代码(编程新手)。
答案 0 :(得分:0)
您可以在这里使用ArrayList。在循环内部,您可以将每个对象添加到相应的列表中。当您退出循环时,每次迭代中创建的所有对象都将添加到列表中。每当您想要访问单个对象时,您都可以使用list iterator。
python