好的,我甚至不确定这是否是正确的问题。
我一直对A Graphics对象感到困惑,我曾经认为它是一个简单的工具,用于改变颜色和绘制到特定的容器(即JFrame,JPanel)。
但是,我一直在研究缓冲(三重,双重,翻转......等)以及它如何工作3天,而我的困惑只会增加。例如,为什么当我们需要绘制缓冲区(即BufferStrategy,BufferedImage)时,我们得到自己的图形对象来绘制它然后我们将它投影到屏幕上?图形对象是否代表绘图表面(例如,如果我们使用一个通过JPanel#paintComponent(Graphics g)
绘制自定义绘画的话,它就是JPanel)?
所以当我们得到一个缓冲区的图形对象时,我们是否真的得到它的绘图表面?
请有人解释,任何帮助表示赞赏
感谢
答案 0 :(得分:1)
来自API:
Graphics对象封装了basic所需的状态信息 Java支持的渲染操作。这个状态信息 包括以下属性:
- 要绘制的Component对象。
- 渲染和裁剪坐标的平移原点。
- 当前剪辑。
- 当前颜色。
- 当前字体。
- 当前逻辑像素操作功能(XOR或Paint)。
- 当前XOR交替颜色(请参阅setXORMode(java.awt.Color))。
因此,Graphics实例包含有关绘制(组件)的 WHERE 的信息以及用于绘制它的 HOW (颜色,字体等)。然后它会为您提供方法,以便您可以告诉它 WHAT (矩形,圆形,文本等)。