Public 布尔值 isnamevalid() 和 charAt(i)

Public boolean isnamevalid() with charAt(i)

String name = jTextField3.getText();

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

第一种方法应该在 jTextField3 中查找数字。如果有数字,那么它会 return false if no so true。另一个方法如果第一个方法== false 所以JOptionPane.showMessageDialog(this, "Name isn't valid");。问题是第二种方法无效

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

我假设您的整个方法如下所示(因为您遗漏了 header):

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,这意味着它是一个实例方法。看到在您的调用中,您没有实例化或调用 object,我假设您可能打算编写一个 class 方法。要使其成为 class 方法,您必须将 header 更改为:

public static Boolean isNameValid()

如果你没有做到 static,你需要创建一个 object 你所在的 class,然后用 object 名称。或者说 this.isNameValid().

假设您将其设为 class 方法:

问题是您没有正确调用该方法。当您应该说 isNameValid() 时,您说的是 isNameValid。即使您没有任何参数,您仍然需要 () 以便 IDE 可以识别您正在调用一个方法。进行更改后,您只需说:

即可调用它

if(isNameValid())

我不确定我是否理解您的意图。但是如果你想检查 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");
}