2012-02-29 5 views
0

Я немного поработал над игрой, не слишком причудливой, и мне было интересно, каким будет лучший способ сделать экран меню. В настоящее время я использую один JPanel в качестве основы для «Картина». Мне было интересно, какой лучший способ реализовать экраны меню и т. Д.Несколько «экранов»

То, что я думал до сих пор:

а) имеют текущий уход JPanel тейк экрана меню.

b) Сделайте для них новый JPanel и замените их на следующий; ex: Если я попал в новую игру, переключитесь на новый JPanel, который содержит настройку игры.

Extra Вопрос:

Что лучше нас Canvas или какой-либо другой компонент по JPanel, учитывая плей-способность на апплета и приложение было проблемой?

Спасибо!

ответ

3

Рекомендация:

  • Если это приложение Качелей, затем все средства придерживаться компонентов Swing, таких как JPanel,.
  • Ваши пользователи, вероятно, предпочтут вашу замену JPanels, и если вы решите пойти по этому маршруту, то CardLayout упростит работу.
  • Возможно, вы захотите обменять JPanels, если представленные в них представления существенно отличаются. Если это только вопрос изменения текста, то вы могли бы пройти с изменением текста нескольких JLabels вместо замены.
+1

+1 Хороший совет; реализация «Icon», проиллюстрированная [здесь] (http://stackoverflow.com/a/3072979/230513), является еще одним удобным способом настройки графики существующего 'JComponent.' – trashgod

2

Из Вашего вопроса я предполагаю, что ваша точка зрения игры рисуется полностью с Graphics внутри paintComponent(), и нет никаких других компонентов, уже в главном JPanel. В этой ситуации, вероятно, проще просто переключить код рисования, который вы вызываете, а не иметь другой код чертежа в совершенно другом классе панели.

Edit:

Просто уточнить: Основная причина вы хотите поменять JPanel s, если оригинал JPanel было много компонентов, слушателей и т.д. установлены на нем, что вам нужно поменять чтобы переключить его на отображение меню. Если экран меню можно покрасить до того же Graphics и будет работать тем же MouseListener, я бы использовал только одну панель.

+0

Похоже, у него есть чертежные экраны для игры, а затем хочет переключиться на экраны меню. –

+0

@HovercraftFullOfEels Это тот случай. – imbuedHope

1

Что лучше нас Canvas или какой-либо другой компонент по JPanel, учитывая плей-способность на апплета и приложение было проблемой?

Не используйте Canvas, если в остальной части проекта не используется AWT. Если это Swing, а компонент содержит только пользовательский рисунок, используйте JComponent. Если Swing и область имеют компоненты, расположенные внутри него, используйте JPanel.

Почему вы сделали различие между апплетом и приложением?Вы думаете об использовании AWT в апплете, случайно?

+0

Я сделал различие просто, чтобы указать, что я хотел бы запустить его как для апплета, так и для оконного приложения. Обычно я использую JApplet. – imbuedHope

Смежные вопросы