图形绘制到窗口背后的"secret"是什么?



图形本身只是一个抽象类。调用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是在屏幕上绘制矩形的事件。

相关内容

  • 没有找到相关文章

最新更新