【问题标题】:Is this bad practice? Multiple Graphics2D Objects这是不好的做法吗?多个 Graphics2D 对象
【发布时间】:2010-06-18 13:58:08
【问题描述】:

我创建了一个包含所有图形的 JPanel 画布;即JLabel。要使动画精灵工作,您必须覆盖扩展 JLabel 类的paintComponent。我已经通过这种方式成功实现了动画精灵。

拥有一个 Graphics2D 画布然后在它们自己的 Graphics2D 中拥有多个“图像”是不好的做法吗?

【问题讨论】:

    标签: java swing java-2d graphics2d


    【解决方案1】:

    我认为它不会太重,因为 JPanelGraphics2D 应该与传递给 JLabel 的相同,但边界和偏移量不同。

    我的意思是 Swing 并没有分配一个新的图形上下文,您可以在上面显示对象层次结构中的每个元素,但它使用相同的不同功能。这并不意味着panel.getGraphics() == label.getGraphics(),但它们都不是完全不同的对象。

    无论如何,如果你需要做很多动画工作,我建议你有自己的精灵类

    class Sprite
    {
      Point2D position;
      Rectangle2D size;
      float rotation;
    }
    

    并在同一paintComponent 级别处理所有内容。或者至少我一直都是这样做的,因为 Java2D 不像 CoreAnimation,它被用于在每层的基础上移动/动画内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 2013-03-06
      • 1970-01-01
      • 2015-01-22
      相关资源
      最近更新 更多