动画时的 JPanel 与 JFrame
JPanel vs JFrame when animating
我最近做了一个程序,该程序沿 window 移动图像并在它到达边界时强制它改变方向。动画发生在 JPanel class 中,然后当然将其添加到包含 main() 函数的 JFrame class 中。现在我的问题是为什么必须以这种方式完成。我不能只拥有 JFrame 并将其用作我的 window 和移动图像的动画 class 吗? JFrame 是否无法单独表示动画。
问候。
最好使用 JPanel,因为您可能希望在一帧中有多个面板,每个面板都有不同的动画。
是的,您也可以使用 JFrame 来完成。
Omar 的回答是正确的,但我想我可以详细说明一下:
尽管 JFrame 能够承载您的动画,但这并不是 JFrame 的 典型 使用。 JFrame 通常是最外层的可视化容器并托管一个或多个其他可视化容器(例如 JPanel)。尽管有例外,但我认为 JPanel 是包含动画(或其他 GUI 'controls')的最灵活和最常用的方式,以便您以后可以灵活地添加视觉功能。
但正如 Omar 指出的那样,可以使用 JFrame 或 JPanel,因为它们在 Swing 中都被视为 "containers"。回到我的最后一条评论,使用 JPanel 更灵活一些。例如,您以后可能想将动画合并到 Applet/JApplet 中,如果您使用 JFrame,您可能会发现 and/or 难以理解。
我试图只对 Omar 的回答发表评论,但我是新用户,它还不允许我添加评论。因此,欢迎投票:)
我最近做了一个程序,该程序沿 window 移动图像并在它到达边界时强制它改变方向。动画发生在 JPanel class 中,然后当然将其添加到包含 main() 函数的 JFrame class 中。现在我的问题是为什么必须以这种方式完成。我不能只拥有 JFrame 并将其用作我的 window 和移动图像的动画 class 吗? JFrame 是否无法单独表示动画。 问候。
最好使用 JPanel,因为您可能希望在一帧中有多个面板,每个面板都有不同的动画。
是的,您也可以使用 JFrame 来完成。
Omar 的回答是正确的,但我想我可以详细说明一下: 尽管 JFrame 能够承载您的动画,但这并不是 JFrame 的 典型 使用。 JFrame 通常是最外层的可视化容器并托管一个或多个其他可视化容器(例如 JPanel)。尽管有例外,但我认为 JPanel 是包含动画(或其他 GUI 'controls')的最灵活和最常用的方式,以便您以后可以灵活地添加视觉功能。
但正如 Omar 指出的那样,可以使用 JFrame 或 JPanel,因为它们在 Swing 中都被视为 "containers"。回到我的最后一条评论,使用 JPanel 更灵活一些。例如,您以后可能想将动画合并到 Applet/JApplet 中,如果您使用 JFrame,您可能会发现 and/or 难以理解。
我试图只对 Omar 的回答发表评论,但我是新用户,它还不允许我添加评论。因此,欢迎投票:)