我不太确定该问题的标题,提前道歉。我目前在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();
}
}
}
答案 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 );