我试图确保用户在此文本框中输入的第一个字符是字母。但是,如果不是,则会弹出一个消息框,通知用户第一个字符不能是数字,而必须是数字。问题是,在事件发生后,程序完全忽略了检查第一个位置是否有字母的代码。
if (event.getSource() == item2)
{
string = String.format("Account number: %s", event.getActionCommand());
str = string.substring(1);
try{
Integer.parseInt(string.substring(0,1));
parsable = true;
}catch(NumberFormatException e){
parsable = false;
}
if(parsable == true)
{
JOptionPane.showMessageDialog(null, "ENTER THE LETTER CORRESPONDING WITH YOUR ACCOUNT NUMBER AS THE FIRST CHARACTER IN THE TEXT FIELD.");
}
/*
try
{
Integer.parseInt(str);
}
catch(NumberFormatException e)
{
String.format("enter a valid number");
}
*/
}
因为您使用的是String.format("Account.... . net ")你的字符串的第一个字符将始终是帐户的'A',你必须检查字符串,你从event.getActionCommand()方法