gpt4 book ai didi

java - 如何使用jtable在JAVA中创建一个简单的电子表格?

转载 作者:行者123 更新时间:2023-12-02 09:14:26 26 4
gpt4 key购买 nike

我很难用 Java 使用 jtable 制作一个简单的电子表格,这是我的输出 My program

余额应为 14,750 - 250,即 14,500。但程序返回到-500,我不明白。

我试图调整我的代码,但我只是倾向于把它搞砸。这是与余额相关的代码。需要注意的一件事是,我使用 mysql 来访问数据库中的数据。

private void setBalance(int balance, int amount, String type) {
if(type.equalsIgnoreCase("expense")) {
balance = getBalance() - amount;
}
else if(type.equalsIgnoreCase("deposit")) {
balance = amount;
}
else{
balance = getBalance() + amount;
}
this.balance = balance;

}

public int getBalance() {

return balance;
}

//constructor for my transaction class
public Transaction(int transactionID, String transactionDetails, String transactionType, String purpose, int amount, Date date) {
this.transactionID = transactionID;
this.transactionDetails = transactionDetails;
this.transactionType = transactionType;
this.purpose = purpose;
this.amount = amount;
this.date = date;
setBalance(getBalance(), amount, transactionType);
}

这里是我将值添加到表中的代码

public void showTable() {
ArrayList<Transaction>list = transactionList();
DefaultTableModel model = (DefaultTableModel) table.getModel();
Object row[] = new Object[7];

for(int i = 0; i < list.size(); i++) {
row[0] = list.get(i).getTransactionID();
row[1] = list.get(i).getDate();
row[2] = list.get(i).getTransactionDetails();
row[3] = list.get(i).getTransactionType();
row[4] = list.get(i).getPurpose();
row[5] = list.get(i).getAmount();
if(i == 0) {
row[6] = list.get(i).getBalance();
}
else {
row[6] = list.get(i).getBalance() - list.get(i-1).getBalance(); //in order to retrieve the previous balance
}
model.addRow(row);
}

}

最佳答案

the program is returning -500 which I don't understand

好的,初始余额为 15000,然后进行 2 笔交易,每笔应扣除 250

iteration balList balDisplay 0          15000        15000 set by if(i == 0) {list.get(i).getBalance()}1         +/-250        14750 set by else {list.get(1).getBalance() - list.get(0).getBalance}2           250         -500 set by else {list.get(2).getBalance() - list.get(1).getBalance}

迭代0表示list[0]余额最初为15000

迭代1表示list[1]balance初始为+250或-250,显示值为14750(15000-250) )。计算方式为list.get(1).getBalance() - list.get(0).getBalance

  • 假设为 +250,计算结果为 -14750
  • 假设为 -250,计算结果为 -15250

由于显示屏显示 14750,因此它必须显示计算出的金额,但已反转(金额*-1),这不包含在所提供的代码片段中。

迭代2:从1开始,我们可以假设,list[2]balance最初是+250,balDisplay 应该是 0 (250-250),但实际是 -500。

现在可以从头开始,假设初始余额实际上是 -15000,根据 1 等中的推理显示为 +15000...

鉴于现有信息,这是我可以在合理时间内提供的内容。分析表明第 3 行显示的余额应该为零,但实际上是 -500。没有任何可用的东西可以解释这一点。另一方面,基于同样的道理,余额也不可能是14500。

最可疑的是list.get(i).getBalance() - list.get(i-1).getBalance()。为什么要从另一个余额中扣除一个余额,而不是从某个余额中扣除金额。另外,为什么要从后面的 (i) 余额中扣除前面的 (i-1) 余额呢?

关于java - 如何使用jtable在JAVA中创建一个简单的电子表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59120137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com