kra*_*ato 3 java swing multiple-instances jframe
我总是想知道如何制作一个包含多个JFrame的程序.我的意思是我只想要一个类来处理所有的GUI和东西,但我怎么能有效地做到这一点?很多教程都说我们通过继承JFrame来制作JFrame.但如果我想要很多帧呢?
例如:带有一些选项的一帧中的应用程序标题菜单是一帧主要工作应用程序是一帧像游戏中一样.
但我不确定我是否与JPanel有关?我对2完全感到困惑.我只想要一个不移动的框架,但基本上框架的内容正在发生变化.例如,当我点击START时,它将变为框架的游戏风格.
你正在寻找JFrame一个CardLayout.一些背景:
一个JFrame的是物理窗口.它带有一个标题栏和三个按钮:最小化,最大化和关闭.把它想象成一个相框.
一个JPanel的是"内容持有人"不爽.通常,您将其他组件(按钮,动画,等等)放在JPanel上,然后将该JPanel打到JFrame中.使用我们的相框示例,JPanel将是您放在相框中的照片纸.然后其他组件将是图片本身的实际内容,最后你得到的是一幅很好的图片......或者在你的情况下,是一个应用程序.
将JFrame设置为使用a CardLayout本质上允许您在同一个JFrame中同时拥有多个JPanel,同时仍然只显示一个.因此,对于您的应用程序,您将拥有(至少)两个JPanel:一个用于菜单,一个用于游戏.当应用程序启动时,您将显示MenuPanel.当用户单击"开始"时,您切换到GamePanel.MenuPanel将被置于后台,并且在您再次将其调用到前台之前将无法访问.
另一方面,如果您创建多个JFrame,则您将拥有两个或多个物理上独立的窗口,可以单独处理.这对游戏开发来说实际上很酷.虽然为第二个窗口构建和链接GUI需要更多时间,但您可以让该窗口实时影响游戏设置(射击速度,子弹强度,玩家速度等)