EventDispatchThread 执行

EventDispatchThread Execption

提问人:Galaxylokka 提问时间:1/14/2023 最后编辑:AbraGalaxylokka 更新时间:1/14/2023 访问量:28

问:

我创建了一个列表方法,根据付款插入本金值和剩余余额。但是当我在action中实现此方法时,会发生Listner方法错误(EventDispatchThread Execption)。我试着解决它。请为我解决这个问题提供任何帮助。

public class Loan {
    float lamt,irate,inst,lbalance;
    int duration,nop;
    String amtlist[][] = new String[duration+1][5];

    Loan(float lamt, float irate, int duration, int nop) {
        this.lamt = lamt;
        this.irate = irate;
        this.duration = duration;
        this.nop = nop;
    }

    public void alist() {
        amtlist[0][0] = "0" ;
        amtlist[0][1] = "0";
        amtlist[0][2] = "0";
        amtlist[0][3] = "0";
        amtlist[0][4] = Float.toString(inst*annuity(duration,irate));

        float v = 1 / (1 + irate);
        for (int i = 1; i < duration + 1; i++) {
            amtlist[i][0] = Float.toString(i);
            amtlist[i][1] = Float.toString(irate * annuity(duration + 1 - i, irate));
            amtlist[i][2] = Float.toString(instalment());
            amtlist[i][3] = Double.toString(instalment() * Math.pow(v, i));
            amtlist[i][4] = Float.toString(instalment() * annuity(duration - i, irate));
        }
    }

    public float annuity(int duration, float irate) {
        float v = 1 / (1 + irate);
        float an = (float) ((1 - Math.pow(v, duration)) / irate);
        return an;
    }

    public float instalment(){
        return inst = lamt / annuity(duration, irate);
    }

    public float lbalance() {
        return lbalance = inst * annuity(duration - nop, irate);
    }
}

public void actionPerformed(ActionEvent e) {
    String lamtstr = tf1.getText();
    String iratestr = tf2.getText();
    String durationstr = tf3.getText();
    String nopstr = tf4.getText();

    float lamt = Float.parseFloat(lamtstr);
    float irate = Float.parseFloat(iratestr);
    int duration = Integer.parseInt(durationstr);
    int nop = Integer.parseInt(nopstr);

    Loan l = new Loan(lamt, irate, duration, nop);
    float inst = 0, balance = 0;
    if (e.getSource() == b1) {
        inst =l.instalment();
        balance =l.lbalance();
    }
    if (e.getSource() == b2) {
        l.alist();
        fscr.dispose();
        new AmTable(l.amtlist);
    }
    tf5.setText(String.valueOf(inst));
    tf6.setText(String.valueOf(balance));
}

我试图通过将方法更改为值返回方法来解决它,但我的尝试是徒劳的。alist

if (e.getSource() == b2) {
    l.alist();
    fscr.dispose();
    new AmTable(l.amtlist);
}

我希望使用 amlist 数组调用 AmTable 函数。

Java 数组类 异常 event-dispatch-thread

评论

0赞 Abra 1/14/2023
编辑您的问题并发布错误详细信息,包括实际错误消息和整个堆栈跟踪。还可以考虑发布一个最小的可重现示例
0赞 Community 1/14/2023
请提供足够的代码,以便其他人可以更好地理解或重现问题。

答: 暂无答案