我正在创建一个用户界面,让用户插入一个标识号(变量名称pNo)。我试图从JTextfield读取插入的数字,然后将其传递给另一个应该为用户创建帐户的方法(createCreditAccount()
)。
问题是方法createCreditAccount()
没有像它应该的那样返回一个帐号。即使我确定系统中有匹配的ID号。
有人可以告诉我为什么我没有得到预期的输出。方法createCreditAccount()
没有返回它应该的内容。它返回-1,如果没有具有该id的客户端但我创建了那些,这将是正确的。我还从我的主要方法创建客户和帐户,工作正常。例如:
SubWindowBankContainer.getBank().createCustomer("john", "doe", "7239009");
int accountID =
SubWindowBankContainer.getBank().createCreditAccount("7239009");
String account =
SubWindowBankContainer.getBank().getAccount("7239009", accountID);
上面的这个例子在从main方法调用时完全正常,但不是从actionlistener方法调用。
所以我认为createCreditAccount()
没有任何问题,我认为actionPerformed()
是错误的。但是什么?
我倾向于getText()
正在添加额外的emptyspaces或类似的东西。
public void actionPerformed(ActionEvent creditAccButtonPressed){
if (creditAccButtonPressed.getSource()==pNoButton){
String pNo = pNoTextField.getText();
int creditAccountId = SubWindowBankContainer.getBank().createCreditAccount(pNo);
String Account = SubWindowBankContainer.getBank().getAccount(pNo,creditAccountId);
}
}
继承我正在调用的方法
public int createCreditAccount(String pNr) {
int accountNr = -1;
int pNoIndex = getIndexForPno(pNr);
if (pNoIndex > -1) {// Om id-nummret finns ...
allCustomers.get(pNoIndex).addToAccountsList(new CreditAccount());
accountNr = Account.getLastAssignedAccountNumber();
}
return accountNr;
}