我正在开发小程序,我的类扩展了第三方 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/