2012-02-29 155 views
0

我一直在一個遊戲上工作很多,不是太花哨,我想知道製作菜單屏幕的最佳方式是什麼。我目前使用一個JPanel作爲 「繪畫」的基礎。我想知道實現菜單屏幕等的最佳方式是什麼。多個「屏幕」

我認爲到目前爲止什麼:

一)在當前JPanel照顧菜單畫面。

b)爲他們製作新的JPanel s並將它們交換到下一個;例如:如果我點擊新遊戲選項,然後切換到一個新的JPanel,它保存遊戲設置。

額外的問題:

是更好地我們的小程序一個Canvas,或者一些其他的成分在JPanel定播放能力和應用是一個問題?

謝謝!

回答

3

建議:

  • 如果這是一個Swing應用程序,然後通過各種手段堅持使用Swing組件如JPanels。
  • 你的用戶可能會更喜歡你交換JPanels,如果你決定走這條路線,CardLayout會讓你很容易做到。
  • 如果在其中呈現的視圖明顯不同,您可能會想要交換JPanels。如果它只是一個改變文本的問題,那麼你可能會改變幾個JLabel的文本而不是交換。
+1

+1好的建議;實現'圖標',說明[這裏](http://stackoverflow.com/a/3072979/230513),是另一個方便的方式來定製現有的'JComponent.'的圖形。 – trashgod 2012-02-29 02:43:39

2

從你的問題我猜測你的遊戲視圖與Graphics完全抽出裏面paintComponent(),並且沒有任何其他組件已經在主JPanel。在這種情況下,只需切換您調用的繪圖代碼而不是將其他繪圖代碼放在完全不同的面板類中即可。

編輯:

只是爲了澄清:主要的原因,你會想要交換JPanel s是如果原來的JPanel有很多組件,監聽器等,在其上安裝,你需要換出爲了切換到顯示菜單。如果菜單屏幕可以繪製到相同的Graphics並由相同的MouseListener運行,我將只使用一個面板。

+0

看起來他已經繪製了屏幕遊戲,然後想切換到菜單屏幕。 – 2012-02-29 00:19:52

+0

@HovercraftFullOfEels就是這樣。 – imbuedHope 2012-02-29 00:29:21

1

是更好地我們的小程序一個Canvas,或者一些其他的成分在JPanel定播放能力和應用是一個問題?

除非項目的其餘部分使用AWT,否則不要使用Canvas。如果是Swing,並且組件僅包含自定義繪畫,請使用JComponent。如果Swing和該區域內部佈置了組件,請使用JPanel

爲什麼區分applet和應用程序?你有沒有想過在applet中使用AWT?

+0

我做了區分只是爲了說明我希望能夠在Applet和窗口應用程序上運行它。我通常使用JApplet。 – imbuedHope 2012-03-01 05:41:22