Graphics对象实际代表什么?

时间:2014-08-13 18:49:31

标签: java swing graphics buffer

好的,我甚至不确定这是否是正确的问题。 我一直对A Graphics对象感到困惑,我曾经认为它是一个简单的工具,用于改变颜色和绘制到特定的容器(即JFrame,JPanel)。 但是,我一直在研究缓冲(三重,双重,翻转......等)以及它如何工作3天,而我的困惑只会增加。例如,为什么当我们需要绘制缓冲区(即BufferStrategy,BufferedImage)时,我们得到自己的图形对象来绘制它然后我们将它投影到屏幕上?图形对象是否代表绘图表面(例如,如果我们使用一个通过JPanel#paintComponent(Graphics g)绘制自定义绘画的话,它就是JPanel)? 所以当我们得到一个缓冲区的图形对象时,我们是否真的得到它的绘图表面? 请有人解释,任何帮助表示赞赏 感谢

1 个答案:

答案 0 :(得分:1)

来自API

  

Graphics对象封装了basic所需的状态信息   Java支持的渲染操作。这个状态信息   包括以下属性:

     
      
  • 要绘制的Component对象。
  •   
  • 渲染和裁剪坐标的平移原点。
  •   
  • 当前剪辑。
  •   
  • 当前颜色。
  •   
  • 当前字体。
  •   
  • 当前逻辑像素操作功能(XOR或Paint)。
  •   
  • 当前XOR交替颜色(请参阅setXORMode(java.awt.Color))。
  •   

因此,Graphics实例包含有关绘制(组件)的 WHERE 的信息以及用于绘制它的 HOW (颜色,字体等)。然后它会为您提供方法,以便您可以告诉它 WHAT (矩形,圆形,文本等)。