当前位置: 首页 > 知识库问答 >
问题:

java-get图形

方谦
2023-03-14

我正在制作一个java swing游戏。我听说swing组件不使用主动呈现(您只能重写paint方法),因此,我一直在使用BufferStrategy和Canvas。现在,我已经从JComponent和JPanel中发现了getGraphics()方法。如果我们可以在swing组件中进行主动呈现,为什么游戏教程仍然重写paint()paintcomponent()

共有1个答案

百里沛
2023-03-14

永远不要使用getgraphics,它可以返回null,而仅仅是上一个绘制周期的快照。

在下一个油漆周期中,您对它所画的任何东西都将被移除。在Swing中,您无法控制油漆过程,油漆循环可能会因多种原因而启动,其中许多原因您无法控制,也无法通知您(除了调用油漆之外)

基本的答案是,如果您想要控制绘制过程,您必须使用bufferstrategy或实现您自己的屏幕外绘制例程。您无法在Swing API中实现真正的活动绘制过程,您可以在一定程度上伪造它,但Swing仍然能够在它认为合适的时候执行自己的绘制周期。

请看在AWT和Swing中绘画和执行自定义绘画,以获得关于在Swing中绘画如何工作的更多细节

 类似资料:
  • 本文向大家介绍Java WeakHashMap get()方法与示例,包括了Java WeakHashMap get()方法与示例的使用技巧和注意事项,需要的朋友参考一下 WeakHashMap类方法 get()方法在java.util包中可用。 get()方法用于获取此映射中与给定键元素(key_ele)关联的值,否则返回null。 get()方法是一种非静态方法,只能通过类对象访问,如果尝试使

  • 本文向大家介绍Java Calendar get()方法与示例,包括了Java Calendar get()方法与示例的使用技巧和注意事项,需要的朋友参考一下 日历类方法 get()方法在java.util包中可用。 get()方法用于检索此Calendar的给定参数fi(field)的值。 get()方法是一个非静态方法,可通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。 在返回

  • 本文向大家介绍Java EnumMap get()方法与示例,包括了Java EnumMap get()方法与示例的使用技巧和注意事项,需要的朋友参考一下 EnumMap类方法 get()方法在java.util包中可用。 get()方法用于获取与给定键元素(key_ele)映射的值,否则当没有与给定键元素(key_ele)关联的值时返回null。 get()方法是一种非静态方法,只能通过类对象访

  • 是否同时初始化一个空数组? 此空数组是否缓存在JVM中? 它们对某个数组-类-对象进行操作吗? 它们在字节码级别上相同吗? 注意:它可能是以某种方式写在JLS中的,但我在任何地方都找不到合适的描述。

  • 如何检索找到的标记映射(例如),以便验证文本是否已正确映射到标记?

  • GET

    GET key 返回 key 所关联的字符串值。 如果 key 不存在那么返回特殊值 nil 。 假如 key 储存的值不是字符串类型,返回一个错误,因为 GET 只能用于处理字符串值。 可用版本: >= 1.0.0 时间复杂度: O(1) 返回值: 当 key 不存在时,返回 nil ,否则,返回 key 的值。 如果 key 不是字符串类型,那么返回一个错误。 # 对不存在的 key 或字符串