图形本身只是一个抽象类。调用g.drawImage(Image img, tx, null)
或类似的东西实际上是如何将绘制到窗口的?我看了一下,发现java.awt.Component
的一个例子可能发生了什么?是这样吗?我不知道。
我的主要原因是我想创建自己的Graphics
上下文,称为Graphics3D
。我的光栅化器将利用这一点,然后从Graphics3D
上下文中可以绘制和操作3D对象。即使我可以将Graphics
继承到我的Rasterizer
中,我也不知道该怎么办
java.awt.Component
是可以在屏幕上绘制的任何类的超类
在这个类中,您可以看到像素是如何在屏幕上绘制的
这个类中有一个方法,即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
是在屏幕上绘制矩形的事件。