Java-апплет для многопанельного приложения

Я сделал Java-игру, но она основана на апплетах. Я хочу преобразовать его в отдельное приложение. К сожалению, у меня нет знаний о приложениях Swing/Java, поэтому я не совсем уверен, с чего начать и как получить то, что я хочу.

Моя главная проблема заключается в том, что игровой экран по существу разделен на две части. «Игровой экран» и то, что я называю «приборной панелью». Если вы можете представить себе Age of Empires, StarCraft или любую другую игру в жанре RTS, то вот какова схема.

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

Это вообще возможно?

PS: не стесняйтесь запрашивать любой код или скриншоты игры

Изменить: если это возможно, как мне это сделать?


person rolledback    schedule 04.02.2012    source источник
comment
Возможно ли это в любом случае? Любой макет графического интерфейса, который возможен в апплете, возможен и в настольном приложении. Так что ответ на ваш единственный вопрос: Да . Должен ли я ввести это как ответ, или вы хотите задать более конкретный вопрос?   -  person Andrew Thompson    schedule 05.02.2012
comment
Более конкретный вопрос заключается в том, как я буду это делать? Мерсенн, кажется, дает довольно хороший ответ, но мне интересно посмотреть, ответите ли вы по-другому.   -  person rolledback    schedule 05.02.2012


Ответы (2)


Простые приложения Swing обычно основаны на классе JFrame. Насколько я понимаю, вся игра рендерится, а не использует стандартные компоненты пользовательского интерфейса. Тогда, грубо говоря, почти никакой разницы между JApplet и JFrame классами. Если бы вы использовали определенные методы JApplet для загрузки ресурсов или что-то подобное, почти все они были бы легко заменены аналогами.

Вы можете создать класс компонентов (расширив JComponent) и использовать его для рендеринга главного окна игры. И создайте еще один для визуализации приборной панели. Затем используйте BorderLayout в качестве менеджера компоновки на JFrame, поместите главное окно в центр, а информационную панель на любой край.

На сайте Oracle есть довольно четкие руководства: Как создавать фреймы и Как пользоваться панелями.

person Mersenne    schedule 05.02.2012

Я думаю, что ответ Мерсенна довольно хорошо описывает это, хотя я бы подумал о том, чтобы отобразить игровой процесс в BufferedImage и добавить это к (ImageIcon в) JLabel в JScrollPane.

person Andrew Thompson    schedule 05.02.2012