0

これは新しいアカウントを追加するためのものです。

private void btnSaveAActionPerformed(java.awt.event.ActionEvent evt)  
{                                         
    BankAccount account = new BankAccount();
    ButtonGroup bg = new ButtonGroup();
    bg.add(rad_savings);
    bg.add(rad_checking);

    account.setAccountName(txt_accountname.getText());
    account.setAccountNo(txt_accountnumber.getText());
    account.setBalance(Double.parseDouble(txt_initialbalance.getText()));

    list.add(account);


    if(rad_savings.isSelected()){
        //account = new SavingsAccount();
        account.setAccountType("Savings");
        list.add(account);
    }
    else
    { 
        //account = new CheckingAccount();
        account.setAccountType("Checking");
        list.add(account);
    }
}

私はまた、貯蓄と小切手クラスを持っています

節約:

public class SavingsAccount extends BankAccount {

public SavingsAccount(){

};

public SavingsAccount(String accountNo, String accountName, double initBalance) {
    super(accountNo, accountName, initBalance);
}

public SavingsAccount(String accountNo, String accountName) {
    super(accountNo, accountName);
}
}

チェック中:

public class CheckingAccount extends BankAccount  {
private double overdraftProtection;


public CheckingAccount(){

};

public CheckingAccount(String accountNo, String accountName, 
        double initBalance) {
    super(accountNo, accountName, initBalance);
}

public CheckingAccount(String accountNo, String accountName) {
    super(accountNo, accountName);
}

public double getOverdraftProtection() {
    return overdraftProtection;
}

public void setOverdraftProtection(double overdraftProtection) {
    this.overdraftProtection = overdraftProtection;
}

public void withdraw(double amount) {
    // TODO: code for withdrawal
}

}

私のBankAccountクラスには、これがあります:

public class BankAccount {
private String accountNo;
private String accountName;
protected double balance; 
private String accountType;

public String toString(){
    return "Account name: " +  accountName + "" + System.getProperty("line.separator") + 
        "Account Number: " + accountNo + "" +System.getProperty("line.separator")+ 
        "Balance: " + balance + "" + System.getProperty("line.separator")+ 
        "Account Type: " + accountType;

}

試してみると、一連のデータが複製されます。例: 口座名: ジョン、口座番号: 101、初期残高: 500、口座タイプ: 普通預金と入力しました。

次のように出力されます。

口座名: John 口座番号: 101 初期残高: 500 口座の種類: 普通預金 口座名: John 口座番号: 101 初期残高: 500 口座の種類: 普通預金

何が悪いのかわかりません。

4

2 に答える 2

1

btnSaveAActionPerformed電話で、list.add(account);口座が当座預金口座か普通預金口座かを確認します。それらの両方のifステートメントで、あなたは別のことをしますlist.add(account);

これにより、アカウントが二重に追加されます。

于 2013-05-30T07:46:48.663 に答える
0

**リストにアカウント オブジェクトを 2 回追加しているため、コードが問題の原因です。

   **list.add(account);**

if(rad_savings.isSelected()){
    //account = new SavingsAccount();
    account.setAccountType("Savings");
    **list.add(account);**
}
else
{ 
    //account = new CheckingAccount();
    account.setAccountType("Checking");
    **list.add(account);**
}

次のようにコードを更新します。

if(rad_savings.isSelected()){
    //account = new SavingsAccount();
    account.setAccountType("Savings");
}
else
{ 
    //account = new CheckingAccount();
    account.setAccountType("Checking");
}
list.add(account);
于 2013-05-30T07:54:42.477 に答える