Java 设置动画时JPanel vs JFrame

Java 设置动画时JPanel vs JFrame,java,animation,jframe,jpanel,Java,Animation,Jframe,Jpanel,我最近做了一个程序,它沿着窗口移动一个图像,当它碰到边界时,迫使它改变方向。动画发生在一个JPanel类中,该类随后被添加到一个包含main()函数的JFrame类中。现在我的问题是为什么必须这样做。难道我不能只使用JFrame并将其用作我的窗口和移动图像的动画类吗?JFrame本身无法表示动画。 注意。最好使用JPanel,因为您可能希望在一个帧中包含多个面板,每个面板具有不同的动画 是的,你也可以用JFrame 奥马尔的回答是正确的,但我想我可以再详细说明一下: 尽管JFrame的能够托管动

我最近做了一个程序,它沿着窗口移动一个图像,当它碰到边界时,迫使它改变方向。动画发生在一个JPanel类中,该类随后被添加到一个包含main()函数的JFrame类中。现在我的问题是为什么必须这样做。难道我不能只使用JFrame并将其用作我的窗口和移动图像的动画类吗?JFrame本身无法表示动画。
注意。

最好使用JPanel,因为您可能希望在一个帧中包含多个面板,每个面板具有不同的动画


是的,你也可以用JFrame

奥马尔的回答是正确的,但我想我可以再详细说明一下: 尽管JFrame的能够托管动画,但它不是JFrame的典型用法。JFrame通常是最外层的可视容器,承载一个或多个其他可视容器(如JPanel)。虽然有例外,但我会认为JPAND是最灵活和最常用的方法来包含你的动画(或其他GUI控件),从而为以后添加视觉特性提供了灵活性。p> 但正如Omar指出的,JFrame或JPanel都可以使用,因为它们都被认为是Swing中的“容器”。回到我的最后一条评论,使用JPanel更灵活一些。例如,您以后可能希望将动画合并到Applet/JApplet中,如果使用JFrame,您可能会发现这会让您感到困惑和/或困难


我试着对奥马尔的答案发表评论,但我是一个新用户,它还不允许我添加评论。因此,请注意:)

JFrame只是一个容器。将组件添加到JFrame时,可以将它们添加到内容窗格。嗯,内容窗格只是一个JPanel。