0

私はクラスの銀行を持っています

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;
    }

}

今、私は銀行のクラスに顧客を追加しています

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を印刷します。2人の顧客を追加すると12のように印刷され、3人の顧客を追加すると123のように印刷されます。

123ではなく3人の顧客を追加するときに3つだけを印刷したい

4

1 に答える 1

2

上記のMadProgrammerのように、actionPerformedを追加するメソッドを使用しているようですCustomers。これにより、次のように表示されます。

1
2
3  

3を追加するCustomers場合、イベントハンドラーでこれを行う場合は、イベントを3回トリガーする必要があるためです。処理されているこれらのそれぞれは、最後に呼び出しがあるメソッドをActionEventsトリガーしています。何が起こっているのかというと、各呼び出しがメソッドが呼び出されるたびに結果が1ずつ上がるので、3つの番号すべてが表示されているということです。actionPerformedSystem.out.println()b.getBank().getCustomers().size()

ボタンでこれをトリガーしている場合は、ボタンのクリックの間に出力を確認してみてください。ボタンをクリックするたびに1行の出力があることがわかります。その場合、最終的なサイズのみを表示したい場合は、呼び出しをイベント処理メソッドの外Vectorに移動する必要があります。System.out.println()

于 2012-09-15T21:41:37.537 に答える