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

时间:2016-05-11 07:39:02

标签: java extends inputverifier

我有两个班级

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吗?并且这是一个问题唯一的抽象方法verifica。

我试试这个,但没有'工作

      testo.setInputVerifier(new Verifica("error") {
         public boolean verifica(testo){
             if (testo.getText == null){
                return true;
             }else{
                  return false;
             }

           }

      });

1 个答案:

答案 0 :(得分:0)

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

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

testo.setInputVerifier(new Verifica("error") {
     @Override
     public boolean verifica(JTextField c) {
         if (testo.getText == null){
            return true;
         } else{
              return false;
         }
     }

  });

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

public abstract class Verifica extends InputVerifier {
    public abstract boolean verifica();
}

testo.setInputVerifier(new Verifica("error") {
     public boolean verifica() {
         if (testo.getText == null) {
            return true;
         } else {
              return false;
         }
       }
  });