更新Java ArrayList中的值

时间:2014-03-24 19:40:14

标签: java arraylist add

我不太确定该问题的标题,提前道歉。我目前在BidderArray中存储了50的值。我希望能够通过输入文本字段的任何给定数字来增加50。

所以说我要为现有的50添加10,它将返回60.目前当我添加10时,50被替换为10而不是将两者加在一起。我理解为什么我的代码正在执行此操作,但无法找到有关我应该做什么的任何教程或提示。

以下是代码:

package abc;

import java.awt.*;


public class Funds extends javax.swing.JFrame {
    int i = 0;

    Bidder bidbal = new Bidder();
    /** Creates new form Funds */
    public Funds() {
        initComponents();
    }

    private void addActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        int f = 0;
        boolean validEntries = true;

        try{
            f = Integer.parseInt(amount.getText());
            Bidder.BidderArray.get(i).setRegFee(f);
        } catch (Exception error) {
            validEntries = false;
            amount.setBackground(Color.red);
        }
        if (validEntries) {
            Bidder.exportBidder();
            Home home = new Home();
            home.setVisible(true);
            this.dispose();
        }
    }
}

4 个答案:

答案 0 :(得分:3)

您实际上并未添加任何内容

Bidder.BidderArray.get(i).setRegFee(f);

显然只是设置了f,你必须get当前值,添加它,然后把它放回去。但这只是猜测,因为我们没有足够的实际代码来知道你做错了什么。

答案 1 :(得分:1)

    f = Integer.parseInt(amount.getText());
    Bidder.BidderArray.get(i).setRegFee(f);

在这里,您似乎正在获取用户的输入(f),只需将数组的元素值设置为它即可。你想要做的是接受输入(f),数组的元素现有值 combine (阅读:在将元素的值设置为新的组合值之前,添加它们。

在伪代码中,这就是你正在做的事情:

f := get user's input
setValue(f)

您需要做什么:

f := get user's input
g := get current value
setValue(f + g)

答案 2 :(得分:1)

您必须将其添加到旧值:

  //Add old to new (Unless you have a different method set for get like
  //getRegFee (Not sure how bidder is implemented))
  Bidder.BidderArray.get(i).setRegFee(Bidder.BidderArray.get(i) + f);

答案 3 :(得分:1)

您必须获得当前费用,添加值,然后设置费用:

f = Integer.parseInt(amount.getText());
Bidder.BidderArray.get(i).setRegFee( f + Bidder.BidderArray.get(i).getRegFee() );

或者您可以添加一个新方法Bidder类添加费用:

class Bidder
{
    //...
    public void addToRegFee( int amount )
    {
        this.regFee += amount;
    }
}

f = Integer.parseInt(amount.getText());
Bidder.BidderArray.get(i).addToRegFee( f );