我有一个班级银行
public class Bank {
public static final double INTEREST = 0.1; //Interest rate charged on overdrawn accounts
private Vector customers=new Vector();
private Address address;
public Bank() {
//address = null;
}
public Bank(Address add) {
customers = new Vector ();
address = add;
}
// add a Customer to the customers Vector
public void addCustomer(Customer cus) {
customers.add(cus);
}
// get and set methods
public Vector getCustomers() {
return customers;
}
public void setCustomers(Vector v) {
customers = v;
}
}
现在我将客户添加到Banks类
public void actionPerformed(ActionEvent e){
int custnum=b.getBank().getCustomers().size()+1;
ad=new Address(txtCustStreet.getText(),txtCustCity.getText(),txtCustPostCode.getText());
cus=new Customer(txtCustName.getText(),ad,custnum, Integer.parseInt(txtoverdraft.getText()));
if (e.getSource() == jbExit) {
frame.dispose();
}
if (e.getSource() == jbSubmit) {
// b.getBank().setCustomers(null);
b.getBank().addCustomer(cus);
}
System.out.println(b.getBank().getCustomers().size());
}
当我在添加1个客户后打印矢量大小时,它打印1 当我添加两个客户时,它打印出像 1 2 虽然我添加3个客户,它打印像 1 2 3
我只想在我添加3个客户时才打印3 1 2 3 请帮助我谢谢
答案 0 :(得分:2)
正如上面提到的MadProgrammer,您似乎正在使用actionPerformed
方法添加Customers
。这会让你看到:
1
2
3
当您添加3 Customers
时,因为如果您在事件处理程序中执行此操作,那么您必须触发事件3次。正在处理的这些ActionEvents
中的每一个都会触发actionPerformed
方法,该方法在其末尾有System.out.println()
个调用。发生的事情是你看到所有三个数字,因为每次调用都打印出b.getBank().getCustomers().size()
的结果,每次调用该方法时,结果会增加一个。
如果您使用按钮触发此操作,请尝试在按钮单击之间查看输出,并且您发现每次单击按钮时都会有一行输出。如果是这种情况,并且您只希望查看Vector
的最终尺寸,那么您必须在事件处理方法之外移动System.out.println()
电话。