2012-02-03 2 views
0

Я провел последние несколько дней, собрав игру, которая работает как апплет, но я также хотел бы, чтобы она была доступна как приложение.Получение Java-апплета в качестве автономного приложения

Я попытался разместить апплет в кадре, но при этом получаю только черный экран (и случайный экран меню). Апплет все еще работает, и звук все еще играет, но больше ничего нет.

Я бы не хотел сломать код и переписать его для автономного приложения, поскольку это требует много времени, но если нет другого пути, я сделаю то, что должен сделать. Программа немного сложна в том, что «основной» класс (содержащий всю информацию о СМИ, события, связанные с игрой и т. Д.) Является расширением класса Applet (содержащим событие KeyListener, init(), событие run() и т. Д.), Поэтому, возможно, Я просто пытаюсь помещать неправильную вещь в рамку?

Вот ссылка на папку src для игры. Я попытался поместить оба класса AWPASG и класс Game в кадр и увидеть те же результаты для обоих.

Любая помощь была бы принята с благодарностью.

Исходный код/​​Медиа http://www.mediafire.com/?4eslqqr4aoh33j1

ответ

2

Это потому, что ваш класс дизайн не очень хорошо. Вы собрали все вместе в 2 классах, чтобы отделить UI Widgets (панели и т. Д. И т. Д.) От контейнера пользовательского интерфейса.

Также вы используете аппликатор и панель AWT старого стиля. Вы должны использовать новые компоненты Swing JApplet и JPanel (и все компоненты JXxx).

Короче говоря, попробуйте изолировать ваше графическое здание (рисование) до класса, который расширяет JPanel (или содержит JPanel). Тогда у вас может быть 2 отдельных класса запуска, один из которых помещает вашу JPA-версию в JApplet и тот, который помещает ее в JFrame (и, таким образом, дает вам возможность запускать ее как настольное приложение).

Также вы можете отделить логику инициализации GAME от жизненного цикла initt, ваша игра должна быть в состоянии инициализировать, не заботясь о технологии графического интерфейса underlieing.

+0

Ну, облом! Большое спасибо за эту информацию. Думаю, мне нужно будет перейти на компоненты Swing. Я до сих пор довольно новичок в сценарии программирования, поэтому я буду работать над очисткой своего класса. Некоторые из них над моей головой, но именно поэтому интернет существует. – Speakr

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