gpt4 book ai didi

java - 从 Java 中的另一个类获取方法

转载 作者:行者123 更新时间:2023-12-01 17:20:23 26 4
gpt4 key购买 nike

我是 Java 新手,所以如果这是您听过的最愚蠢的事情,请耐心等待。

所以,基本上我是用 Java 创建一个表单。提交后,会对其进行验证,如果出现错误,我希望特定的表单项变为红色。我已经通过调用 setAsError() 方法来做到这一点

public void setAsError(){
this.setBackground(new Color(230,180,180));
}

但问题是,我的表单项(包括文本字段、组合框和其他 swing 类)已经扩展了 Java 组件。

public class KComboBox extends JComboBox {

public KComboBox(String[] s){
super(s);
//There's other stuff in here too
}

我想将 setAsError() 方法添加到我的表单项中。我意识到我可以单独将该方法添加到所有必需的类中,但这对于 OO 编程来说似乎有点奇怪。

无论如何,最终的结果应该是,当我这样做时

myFormItem.setAsError()

该字段应变为红色。

如有任何帮助,我们将不胜感激,并提前致谢。

最佳答案

Java支持多接口(interface)继承,允许一个对象从不同的接口(interface)继承许多方法签名。

因此,使用 setAsError 方法创建新的接口(interface),为所有相关类添加实现。

类似于:

public interface ErrorItf {
public void setAsError();
}

之后,将其添加到您的类(class)中:

public class KComboBox extends JComboBox implements ErrorItf{

...

@override
public void setAsError(){
this.setBackground(new Color(230,180,180));
}

}

现在要调用您的类,请通过接口(interface)调用,例如:

ErrorItf element = getComboBox();
element.setAsError();

当您向对象(又名 element.setAsError())发送消息时,即使您不知道它是什么具体类型 JComboBox JTextarea ... .这就是所谓的多态性

作为旁注,举例说明界面如何为您的案例提供帮助

enter image description here

关于java - 从 Java 中的另一个类获取方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19199155/

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