5

图形本身只是一些抽象类。调用g.drawImage(Image img, tx, null)或类似的东西实际上是如何绘制到窗口的?我看了一点,我知道也许在一个实例中发生了java.awt.Component什么?那正确吗?我不知道。

我的主要原因是我想将自己的Graphics上下文称为Graphics3D. 我的光栅化器将利用它,然后Graphics3D您可以从上下文中绘制和操作 3D 对象。即使我可以继承Graphics到我的Rasterizer,我也不知道该怎么做。

4

1 回答 1

3

java.awt.Component是可以在屏幕上绘制的任何类的超类。

在本课程中,您可以看到 Pixel 是如何在屏幕上真实绘制的。
这个类中有一个方法,即public void repaint(long tm, int x, int y, int width, int height). 在此函数中,您必须查看第 3403 行以了解其工作原理。

它为此实例化一个 PaintEvent。 PaintEvent e = new PaintEvent(this, PaintEvent.UPDATE, new Rectangle(x, y, width, height))PaintEvent 的构造函数在哪里PaintEvent(Component source, int id, Rectangle updateRect)

还有一条线Toolkit.getEventQueue().postEvent(e)
Toolkit 获取EventQueue系统,并在其中添加一个PaintEvent
EventQueue跟踪队列中的所有事件并相应地触发它们。
PaintEvent是在屏幕上绘制矩形的事件。

于 2014-08-13T16:43:07.343 回答