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

问题描述 投票:0回答:1

我在用Java编写简单电子表格时遇到了困难,这是我的输出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);
        }

    }
java user-interface jtable
1个回答
0
投票

确定,初始余额为15000,然后进行2次交易,其中list(balList)中的余额为250 ichich

迭代balList balDisplay0 15000 15000由if(i == 0){list.get(i).getBalance()}设置1 +/- 250 14750由else {list.get(1).getBalance()-list.get(0).getBalance}设置2 250 -500由else {list.get(2).getBalance()-list.get(1).getBalance}设置

0表示balancelist[0]最初是15000

1表示balancelist[1]最初为+250或-250,显示值为14750(15000-250)。计算为list.get(1).getBalance() - list.get(0).getBalance

  • 假设是+250,计算得出-14750
  • 假设它是-250,计算得出-15250

由于显示器显示14750,因此它必须显示计算出的数量,但要反转(数量* -1),这不包括在显示的代码段中。

从1后面的2,我们可以假设balancelist[2]最初是+ 250,balDisplay应该是0(250-250),但是是-500。

这是我所能提供的最好的信息。分析得出的结论是,第3行的显示余额应为零,但应为-500。没有任何可用的方法可以解释这一点。另一方面,余额也不能是14500。

© www.soinside.com 2019 - 2024. All rights reserved.