我花了一段时间尝试不同的事情,试图让这个家庭作业正常工作,但我无法弄清楚,我认为这是最后一部分,我正盯着我的脸。当我输入名字和姓氏并按“添加帐户”,然后确认它应该将一个帐户添加到数组列表中,然后当我按“帐户数”时,它应该显示总共有多少个帐户,但它一直显示 0 .
基本帐户列表
import java.util.*;
public class BasicAccountList
{
private ArrayList < BasicAccount> accounts;
/**
* Create a BasicAccount.
*/
public BasicAccountList()
{
accounts = new ArrayList < BasicAccount>();
}
/**
* Add an account to this account list.
* @param account the accountobject to be added
*/
public void addAccount(BasicAccount account)
{
accounts.add(account);
}
/**
* Return the number of accounts currently held.
*
* @return the number of accounts
*/
public int getNumberOfAccounts()
{
return accounts.size();
}
}
基本帐户
public class BasicAccount
{
private Name name;
private String accountNumber;
/**
* Constructor for objects of class Account.
* The number of pointsHeld should should be set to
* the supplied value.
*
* @param fName The Account Holder's first name
* @param lName The Account Holder's last name
* @param acctNumber The account number
*/
public BasicAccount(String fName, String lName, String acctNumber)
{
name = new Name (fName, lName);
accountNumber = acctNumber;
}
// accessors
/**
* Get the Account Holder's first name
*
* @return the Account Holder's first name
*/
public String getFirstName()
{
return name.getFirst();
}
/**
* Get the Account Holder's last name
*
* @return the Account Holder's last name
*/
public String getLastName()
{
return name.getLast();
}
/**
* Get the Account Holder's account Number
*
* @return the Account Holder's account number
*/
public String getAccountNumber()
{
return accountNumber;
}
public void printAccountDetails()
{
System.out.println( toString());
}
/**
* Return details of an account as a formated string
*
* @return the account details of a particular account
*/
public String toString()
{
String output = accountNumber + " ";
output = output + name.toString() + "\n";
return output;
}
// mutators
/**
* Change the first name
*
* @param fName the new first name
*
*/
public void setFirstName(String fName)
{
name.setFirst (fName);
}
/**
* Change the last name
*
* @param lName the new last name
*
*/
public void setLastName(String lName)
{
name.setLast(lName);
}
} // end Account class
GUI类中的相关代码
/**
* Write a description of class HW4GUI here.
*
* @author (your name)
* @version (a version number or a date)
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class HW4GUI extends JFrame implements ActionListener
{
private BasicAccountList accounts;
private JPanel buttonPanel;
private JButton jbtAdd;
private JButton jbtNumber;
private JButton jbtQuit;
private JLabel jlbAcctNo;
private JLabel jlbFName;
private JLabel jlbLName;
private JTextField jtfAcctNo;
private JTextField jtfFName;
private JTextField jtfLName;
private int nextAcctNo;
private JPanel textPanel;
public HW4GUI ()
{
makeFrame();
showFrame();
nextAcctNo = 1001;
}
public void actionPerformed(ActionEvent ae)
{
BasicAccountList accountlist = new BasicAccountList ();
String item = ae.getActionCommand();
String firstNameText = jtfFName.getText();
String lastNameText = jtfLName.getText();
String finalAccountNumber = jtfAcctNo.getText();
if(item.equals("No. of Accounts"))
{
jbtAdd.setEnabled(false);
jbtNumber.setText ("Clear");
jlbAcctNo.setText("No. of accounts:");
//accounts.getNumberOfAccounts();
BasicAccount newaccount = new BasicAccount(firstNameText, lastNameText, finalAccountNumber);
String accountTotal = Integer.toString (accountlist.getNumberOfAccounts());
jtfAcctNo.setText (accountTotal);
}
}
最佳答案
您在 actionPerformed
方法中创建另一个 BasicAccountList
。这意味着,每次单击按钮时,都会生成一个新的 BasicAccountList
并执行此列表上的所有操作,而不是 HW4GUI
所持有的操作。
关于java - 使用另一个类的 getter 方法中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29812122/