我的程序首先提示用户他们想要多少个文本字段
public class textEvent1 implements ActionListener { //action listener for "how many masses?"
public void actionPerformed (ActionEvent e) {
n = (int)(Double.parseDouble(massNumField.getText()));
接下来我创建一个 for 循环来创建标签和文本字段(我已经为其创建了列表,因为我不知道会有多少)。有几个列表,但我只举一个例子。
ArrayList masses = new ArrayList();
for(int i=1; i<=n; i++) { //adds text event 2 text to the screen
massLabel = new JLabel("How much mass does Mass " +i+ " have? ");
massField = new JTextField(5);
masses.add(massField);
现在,当我尝试将质量列表的一个元素分配给这样的变量时,我的问题似乎出现了。
for(int i=1; i<=n; i++) {
mass = Double.parseDouble(((JTextComponent) masses.get(i)).getText());
我已经尝试了几件事...mass = mass.get(i).....mass = mass.get(i).getText()) 等等等等。我要么不断收到诸如空指针异常之类的错误,要么说我无法解析双对象。
此示例出现的错误如下
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 3 >= 3
at java.util.Vector.elementAt(Unknown Source)
at acmx.export.java.util.ArrayList.get(ArrayList.java:54)
at Orbit$textEvent2.actionPerformed(Orbit.java:151)
第 151 行是
mass = Double.parseDouble(((JTextComponent) masses.get(i)).getText());