我有两节课
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;
}
}
});发布于 2016-05-11 19:27:19
您要做的是创建一个抽象类Verifica,然后在使用它时,使用verifica方法的自定义实现创建一个匿名类。
在您正在执行的匿名类定义中,您必须使用相同的签名覆盖变量,例如:
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;
}
}
});https://stackoverflow.com/questions/37156068
复制相似问题