JAva矢量打印

时间:2012-09-15 20:54:20

标签: java arrays oop vector arraylist

我有一个班级银行

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 请帮助我谢谢

1 个答案:

答案 0 :(得分:2)

正如上面提到的MadProgrammer,您似乎正在使用actionPerformed方法添加Customers。这会让你看到:

1
2
3  

当您添加3 Customers时,因为如果您在事件处理程序中执行此操作,那么您必须触发事件3次。正在处理的这些ActionEvents中的每一个都会触发actionPerformed方法,该方法在其末尾有System.out.println()个调用。发生的事情是你看到所有三个数字,因为每次调用都打印出b.getBank().getCustomers().size()的结果,每次调用该方法时,结果会增加一个。

如果您使用按钮触发此操作,请尝试在按钮单击之间查看输出,并且您发现每次单击按钮时都会有一行输出。如果是这种情况,并且您只希望查看Vector的最终尺寸,那么您必须在事件处理方法之外移动System.out.println()电话。