簡體   English   中英

更新Java ArrayList中的值

[英]Update value in Java ArrayList

我不太確定該題目的標題,在此道歉。 我目前在BidderArray中存儲的值為50。 我希望能夠通過在文本字段中輸入的任何給定數字來增加該50。

假設我想將10加到現有的50上,它將返回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();
        }
    }
}

您實際上並沒有添加任何東西

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

顯然只是將某些東西設置為f ,您必須get當前值,將其添加到該值,然后再放回去。 但這只是一個猜測,因為我們沒有足夠的實際代碼來知道您在做什么錯。

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

在這里,好像您正在獲取用戶的輸入( f ),並只需為其設置數組的元素值。 聽起來像您想要做的就是將輸入( f數組元素的現有值合並 (讀取:添加),然后將元素的值設置為新的合並值。

用偽代碼,這是您正在做的:

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

你需要做什么:

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

您必須將其添加到舊值:

  //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);

您必須獲取當前費用,添加值,然后設置費用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM