【问题标题】:Using painted graphics of other java files使用其他 java 文件的绘制图形
【发布时间】:2017-04-02 22:38:28
【问题描述】:

假设我有一个名为BouncingBalls.java 的java 文件,并且我有一个名为MyAnimation.java 的单独java 文件。 MyAnimation 仅包含允许我在从JList 中单击它时播放 BouncingBalls 动画的 GUI。请注意,发生这种情况时不应关闭 MyAnimation。弹跳球应该简单地在专门为此设置的JPanel 上播放,我们称该面板为animationPanel。如果我只有 1 个动画可供选择,但我计划有大约 5 个动画,这将不是问题。我真的应该为此创建一个新的 java 文件还是 paint 方法可重载?

【问题讨论】:

  • 为什么不让这些动画中的每一个都提供它自己的组件并简单地将其切换出来呢?只要让你的每一个动画都实现一个合适的自定义接口
  • ..........................你好?
  • @Paul 你能详细说明一下吗?
  • @ArcIX 老实说,这个问题太笼统了,不能更具体。 IE。切换 JPanel 与简单地更改渲染例程取决于动画的实现方式。处理 fps 的方式决定了如何实现渲染,...。您必须详细说明您的代码是什么样子,然后我才能提供除一些通用模式之外的任何帮助
  • @Paul 好的,我明白了。完成驱动程序后,我会再次询问。谢谢...

标签: java swing animation 2d-games


【解决方案1】:

Bouncing Balls 应该简单地在专门为此设置的 JPanel 上播放,我们称该面板为动画面板。如果我只有 1 个动画可供选择,但我计划有大约 5 个动画,这将不是问题。我真的应该为此创建一个新的 java 文件还是 paint 方法可重载?

如果它们彼此非常不同,您可能需要为每个 JPanel 设置一个单独的 JPanel。如果每个都在自己的 JPanel 中,则很容易将它们与 CardLayout 交换。是否可以只有一个绘图 JPanel 并换掉驱动动画的非组件模型?是的,但这实现起来会比较棘手,但很可能可以做到。如果你走这条路,你会想要完整的模型-视图-控制器 (MVC) 程序设计,其中视图、绘图 JPanel 将根据用户通过 JList 选择的模型显示不同的动画。

一如既往,魔鬼在细节中——如果您需要更详细的答案,您需要提供更多详细信息和minimal example program 代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    • 2010-11-19
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    相关资源
    最近更新 更多