0

このコードは、オンラインで見つけた例にかなり近いようですが、正しくなく、私がやろうとしていることと一致する例が見つかりません。パラメータとフィールドが正しく設定されていないだけかもしれません。または私のアプローチが間違っているかもしれません。

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();
        }
    }

値を入力するためのシンプルな GUI を備えた MachineParameters クラスがあります。Start は MachineParameters の最初のインスタンスを作成し、Process は MachineParameter クラスから呼び出されたときにそのインスタンスを ArrayList に追加することになっています。GoDone が true の場合、プロセスは別のインスタンスを作成するか、false の場合はアニメーションを開始します。ArrayList は、アニメーションのパラメーターを設定するために使用されます。true/false は、GUI の [Submit] または [Done] ボタンで設定されます。

Remmed out 行を追加すると: // machineParameterArray.add(machineParameter_1); machineParameters_1 はインスタンスを参照していません。

また、すべてのインスタンスは同じ名前です。変数名をインクリメントする方法がわかりません - 正しくないようです。

あなたが望むなら私を笑ってください、しかし私は最終的にこれを正しくします。そして、私はそれを行う方法を知っています。

4

1 に答える 1

0

コンストラクターから ArrayList を削除します。どうやら、インスタンスの代わりにローカル変数を作成します。

つまり: machineParameterArray = new ArrayList();

于 2013-10-11T14:35:27.203 に答える