首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在另一个类中使用抽象类inputverifier java

在另一个类中使用抽象类inputverifier java
EN

Stack Overflow用户
提问于 2016-05-11 15:39:02
回答 1查看 97关注 0票数 1

我有两节课

代码语言:javascript
复制
public class Finestra extends javax.swing.JFrame{
    ........
    jtextField.setinputVerifier(.....):
}

public abstract class Verifica extends InputVerifier{
    String message;
    public Verifica(String message){
    }

    public abstract boolean verifica(JtextField c);

    public boolean verify(Jcomponent c){
         JTextField c = (JTextField) jc;
    if (esito(c) == false){
        return false;
    }else{
        return true;
    }
}
    }
}

我想在finestra中使用Verifca类。我没有扩展它,因为有javax.swing.JFrame。我可以使用Verifica吗?它是唯一的抽象方法验证的问题吗?

我试过了,但不起作用

代码语言:javascript
复制
      testo.setInputVerifier(new Verifica("error") {
         public boolean verifica(testo){
             if (testo.getText == null){
                return true;
             }else{
                  return false;
             }

           }

      });
EN

回答 1

Stack Overflow用户

发布于 2016-05-11 19:27:19

您要做的是创建一个抽象类Verifica,然后在使用它时,使用verifica方法的自定义实现创建一个匿名类。

在您正在执行的匿名类定义中,您必须使用相同的签名覆盖变量,例如:

代码语言:javascript
复制
testo.setInputVerifier(new Verifica("error") {
     @Override
     public boolean verifica(JTextField c) {
         if (testo.getText == null){
            return true;
         } else{
              return false;
         }
     }

  });

您不能将变量testo“绑定”为匿名类中verifica方法的参数。但是,您可以直接从匿名类的外部作用域引用testo (因此它绑定在实现中,而不是方法的签名中),结果如下所示:

代码语言:javascript
复制
public abstract class Verifica extends InputVerifier {
    public abstract boolean verifica();
}

代码语言:javascript
复制
testo.setInputVerifier(new Verifica("error") {
     public boolean verifica() {
         if (testo.getText == null) {
            return true;
         } else {
              return false;
         }
       }
  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37156068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档