【问题标题】:What does a Graphics object actually represents?Graphics 对象实际上代表什么?
【发布时间】:2014-08-13 18:49:31
【问题描述】:

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

【问题讨论】:

  • 哇,你们在扣分方面做得很好,但在实际回答问题时就不太好了
  • 问题已回答。浪费时间在一个论坛上回答问题只是发现它已在另一个论坛中被问/回答是很烦人的。我宁愿花时间帮助那些欣赏我努力的人。您甚至都懒得回复您在其他论坛中获得的帮助。你为什么不花点时间尝试回答问题,而不是在制作 cmets 之前一直问他们!
  • 这个问题没有得到完整的回答。我只在另一个论坛上问过,因为我在这里没有得到完整的答案。如果我有问题,我会到处寻找答案,在这里,代码牧场,在颂歌中做梦,雅虎答案,问我妈妈......等等。
  • @user3929076 我们了解您希望使用尽可能多的资源。但是由于另一端是人(在业余时间免费这样做),您至少可以通过链接到您发布的所有其他地方来让我们更轻松,这样我们就不会浪费我们的时间回答已经有答案的问题。您真的很珍惜我们的时间,以至于您无法将一些链接复制到您的帖子中吗?如果是这样,我们为什么要关心你的?你自私的态度不会让你走得太远,而且你不需要额外的工作来发布链接。

标签: java swing graphics buffer


【解决方案1】:

来自API

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

  • 要在其上绘制的 Component 对象。
  • 渲染和剪辑坐标的平移原点。
  • 当前剪辑。
  • 当前颜色。
  • 当前字体。
  • 当前的逻辑像素运算函数(XOR 或 Paint)。
  • 当前 XOR 交替颜色(请参阅 setXORMode(java.awt.Color))。

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

【讨论】:

  • "WHERE to draw (a component)" 所以当我们说bufferedimage#creategraphics 时,就像我们使用相同的 Graphics 对象进行任何绘图的位置一样。告诉我这里是否变暖了
  • 所以如果我们使用 JPanel 并说 bufferedImage#createGraphics 并使用该图形对象进行绘制,我们将不会绘制到 JPanel 而是绘制到 BufferedImage 对吗?
  • 正确。但是,创建一个示例程序来测试您的理论可能会更有效。
猜你喜欢
  • 2010-09-24
  • 2013-12-02
  • 2015-07-05
  • 2015-09-19
  • 1970-01-01
  • 2018-09-18
  • 2010-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多