这段代码似乎与我在网上找到的一个例子非常接近,但它不对,我找不到符合我试图做的例子。也许我只是没有正确设置参数和字段;或者我的做法可能是错的。
package vibrationSimulator;
import java.awt.EventQueue;
import java.util.ArrayList;
import java.util.List;
import sineWaveAnimation.SineDisplay;
import audioOutput.JFrame_sliderSine;
public class VibrationSimulator {
private static List<MachineParameters> machineParameterArray;
private static int ia;
private static MachineParameters machineParameter_1;
public static void main(String[] args) {
Start();
}
public static void Start() {
ArrayList<MachineParameters> machineParameterArray = new ArrayList<MachineParameters>();
MachineParameters machineParameter_1 = new MachineParameters();
machineParameter_1.frame.setVisible(true);
}
public static void Process() {
// machineParameterArray.add(machineParameter_1);
if (MachineParameters.isGoDone()) {
// machineParameterArray[ia] = machineParameter_1;
MachineParameters machineParameter_1 = new MachineParameters();
machineParameter_1.frame.setVisible(true);
} else {
StartAnimations();
}
}
我有MachineParameters类,只需一个简单的GUI来输入值。 Start创建MachineParameters的第一个实例,当从MachineParameter类调用时,Process应该将该实例添加到ArrayList。如果GoDone为true或者启动,则Process创建另一个实例,如果为false,则创建动画。 ArrayList将用于设置动画的参数。 true / false由GUI上的Submit或Done按钮设置。
当我添加Remmed输出行时: // machineParameterArray.add(machineParameter_1); machineParameters_1没有引用该实例。
此外,所有实例都具有相同的名称;我不确定如何增加变量名称 - 看起来不正确。
如果你愿意,可以嘲笑我,但我最终会说得对;然后我就知道该怎么做了。答案 0 :(得分:0)
从构造函数中删除ArrayList。显然它会创建一个局部变量而不是实例。
所以: machineParameterArray = new ArrayList();