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

AMD*_*MDG 5 java 3d rasterize

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

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

afz*_*lex 3

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在其中添加 a 。
EventQueue跟踪队列中的所有事件并相应地触发它们。
PaintEvent是在屏幕上绘制矩形的事件。