gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 12:37:35 24 4
gpt4 key购买 nike

我有两个类

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 吗?这是否是唯一抽象方法验证的问题。

我尝试了这个,但不起作用

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

}

});

最佳答案

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

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

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

});

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

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;
}
}
});

关于java - 在另一个类中使用抽象类 inputverifier java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37156068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com