公共布尔值isnamevalid()with charAt(i)

时间:2017-08-09 17:33:00

标签: java swing boolean indexof

String name = jTextField3.getText();

for(int i = 0; i <= name.length(); i++)
    if (name.charAt(i) >= "0")
        return false;
return false;

第一种方法应该在jTextField3中找到数字。如果有数字,那么如果不是这样,它将返回false。另一种方法,如果第一种方法== false,那么JOptionPane.showMessageDialog(这,&#34;名称不是有效&#34;);.问题是第二种方法不起作用

if (isNameValid == false)
    JOptionPane.showMessageDialog(this, "Name isn't valid");

2 个答案:

答案 0 :(得分:0)

我将假设您的整个方法看起来像这样(因为您遗漏了标题):

public boolean isNameValid()
{
    String name = jTextField3.getText();

    for(int i=0 ; i<=name.length() ; i++)
        if ( name.charAt(i) >= 0 )
            return false;
    return true;
}

注意,您的方法未标记关键字static,这意味着它是一个实例方法。看到你的调用中如何实例化或调用一个对象,我假设你可能想要编写一个类方法。要使其成为类方法,您必须更改标题:

public static Boolean isNameValid()

如果你不做static,你需要创建一个你所在类的对象,然后用对象名称调用该方法。或者说this.isNameValid()

假设您将其设为类方法:

问题是您没有正确调用该方法。您应该说isNameValid时说isNameValid()。即使您没有任何参数,您仍然需要(),因此IDE可以识别您正在调用方法。完成更改后,您可以通过说:

来调用它

if(isNameValid())

答案 1 :(得分:0)

我不确定我是否理解你要做的事情。但是如果你想检查TextField的长度,你可以这样做:

    String name = jTextField3.getText();

    public boolean isNameValid(String name){
      if (name.length > 0){
          return true;
      } else {
         return false;
       }
    }

if (isNameValid(name)){
JOptionPane.showMessageDialog(this, "Name isn't valid");
}