我有两个班级
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;
}
}
});
答案 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;
}
}
});