java - 如何绕过父类paint方法的调用

标签 java applet

我正在开发小程序,我的类扩展了第三方 api 类,该类具有其 Paint(Graphics g) 方法。该类扩展了 JComponent 并从其 Paint(Graphics g) 中调用 super.paint(g)。现在我想从我的类中直接调用 JComponent 绘制方法。有什么办法可以做到这一点吗?我尝试下面但给出错误

getParent().getParent().paint(g);

或者您可以通过以下方式理解这一点

ThirdPartyClass extends JComponent{

    public void paint(Graphics g){
     super.paint(g);
     //some work
    }
}

MyClass extends ThirdPartyClass{

   public void paint(Graphics g){
      getParent().getParent().paint(g);  // not working giving exceptions
   }
}

最佳答案

首先,getParent 并没有获得继承父级;它获取 Component 父级,因此您正在尝试的内容不会执行您想要的操作,即使它确实有效。

其次,我认为是时候重新考虑您的小程序设计了。如果您不想要所继承的类的行为,那么为什么要继承它呢?为什么不直接从 Component 继承呢?我认为如果您尝试使您的类成为 ThirdParty 的子类,然后绕过 ThirdParty 的某些行为(但不是全部),可能会产生各种后果。

关于java - 如何绕过父类paint方法的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13820086/

相关文章:

java - 如何每秒增加一个变量?

java - 声明 ArrayList 或集合实现类的最佳实践

java - 返回接口(interface)实例数组

java - 海量数据优化INSERT

java - createTempFile 时系统找不到路径

Java SSL 握手问题

java - 将 cosmosDB sdk 与 java 一起使用时出现 ALLOW_TRAILING_COMMA 错误

java - 使用 <applet> 标记的 Java Applet 中出现 ClassNotFoundException 错误

Java Applet - ArrayIndexOutOfBoundsException(第 2 部分)

java - 为什么我的程序会循环多次? Java小程序