java - 在不实现所有方法的情况下扩展 Graphics2D 类

标签 java oop graphics implementation graphics2d

我有一个名为 MyClass 的类,我希望这个类扩展 Graphics2D(在 java.awt 中)。但是,当我键入 public class MyClass extends Graphics2D { .... } 时,我必须添加未实现的方法 draw、drawImage、addRenderingHints 等,因为 Eclipse 显示此错误并且无法编译。

我的问题由此而来:我只想使用drawsetBackground等Graphics2D的几个方法,其他的我不想用代码附带其他未实现的方法,这些方法是强制性的。

有没有办法避免这种情况?因为在代码方面我非常干净和简单,我不想要其他 100 行我什至不使用的代码。

你有什么建议?

最佳答案

您可以让它扩展 Graphics,并且只要您需要 Graphics2D,就可以进行转换。

图形 g = this.create(); Graphics2D g2d = (Graphics2D) g;

但是,您需要在其中创建一个 Graphics 变量,因为您不能转换 this

所以对于“setBackground”:

public void setBackground(Image img) {
    g2d.setBackground(img);
}

但实际上,无论您做什么,都会变得一团糟。我什至不确定您是否可以执行 this.create() 而不会发生坏事,所以请记住这一点。

关于java - 在不实现所有方法的情况下扩展 Graphics2D 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6699492/

相关文章:

graphics - WIC和GDI+有什么关系?

c - 小屏幕C/C++图形库

java - 非 volatile 字段何时写入主存

Java 多重调度示例

oop - 编程对象总是语义(语言)意义上的对象吗?

java - 代码说明 : DataModel model = new FileDataModel (new File ("intro.csv"));

c++ - 原生显卡功能

java - 在android上解码加密信息

java - 如何在命令提示符下检查 JAVA_OPTS 值?

java - 如果一个类实现了多个接口(interface),那么 `equals()`应该实现到哪个接口(interface)呢?