多个“屏幕”
我一直在一个游戏上工作很多,不是太花哨,我想知道制作菜单屏幕的最佳方式是什么。我目前使用一个JPanel
作为 “绘画”的基础。我想知道实现菜单屏幕等的最佳方式是什么。多个“屏幕”
我认为到目前为止什么:
一)在当前JPanel
照顾菜单画面。
b)为他们制作新的JPanel
s并将它们交换到下一个;例如:如果我点击新游戏选项,然后切换到一个新的JPanel
,它保存游戏设置。
额外的问题:
是更好地我们的小程序一个Canvas
,或者一些其他的成分在JPanel
定播放能力和应用是一个问题?
谢谢!
建议:
- 如果这是一个Swing应用程序,然后通过各种手段坚持使用Swing组件如JPanels。
- 你的用户可能会更喜欢你交换JPanels,如果你决定走这条路线,CardLayout会让你很容易做到。
- 如果在其中呈现的视图明显不同,您可能会想要交换JPanels。如果它只是一个改变文本的问题,那么你可能会改变几个JLabel的文本而不是交换。
从你的问题我猜测你的游戏视图与Graphics
完全抽出里面paintComponent()
,并且没有任何其他组件已经在主JPanel
。在这种情况下,只需切换您调用的绘图代码而不是将其他绘图代码放在完全不同的面板类中即可。
编辑:
只是为了澄清:主要的原因,你会想要交换JPanel
s是如果原来的JPanel有很多组件,监听器等,在其上安装,你需要换出为了切换到显示菜单。如果菜单屏幕可以绘制到相同的Graphics
并由相同的MouseListener
运行,我将只使用一个面板。
看起来他已经绘制了屏幕游戏,然后想切换到菜单屏幕。 – 2012-02-29 00:19:52
@HovercraftFullOfEels就是这样。 – imbuedHope 2012-02-29 00:29:21
是更好地我们的小程序一个
Canvas
,或者一些其他的成分在JPanel
定播放能力和应用是一个问题?
除非项目的其余部分使用AWT,否则不要使用Canvas
。如果是Swing,并且组件仅包含自定义绘画,请使用JComponent
。如果Swing和该区域内部布置了组件,请使用JPanel
。
为什么区分applet和应用程序?你有没有想过在applet中使用AWT?
我做了区分只是为了说明我希望能够在Applet和窗口应用程序上运行它。我通常使用JApplet。 – imbuedHope 2012-03-01 05:41:22
+1好的建议;实现'图标',说明[这里](http://stackoverflow.com/a/3072979/230513),是另一个方便的方式来定制现有的'JComponent.'的图形。 – trashgod 2012-02-29 02:43:39