Я делаю игру, в которой будут реализованы три игры. Я начал свой код в одном классе, теперь, когда я хочу переместить его в формат MVC, у меня возникают ошибки. Я начал писать весь код в GameView Class, теперь я хочу переместить часть кода из этого класса в класс SView. Проблема в том, что я проиндексировал JFrame в классе GameView, и он не может найти кадр переменной, когда я перемещаю свой код в класс SView. Итак, мне сказали, чтобы он попал в панель, а затем переместил ее, но это просто испортило мою игру.Как реализовать мой код в Java MVC?
ответ
Вы должны организовать вещи по-другому. Некоторые вещи, которые следует учитывать:
GameView
Ваше главное окно? Сделайте такGameView extends JFrame
.SView
панель? Сделайте такSView extends Panel
.
Еще одна вещь, чтобы думать о: SView
некоторые панели, которые вы хотите добавить к вашему GameView
, но это не ответственность SView
добавить себя. Вместо этого, просто инстанцируйте и собрать эти компоненты где-то за пределами обоих этих классов, f.e .:
GameView gameView = new GameView();
gameView.add(new SView());
Вы можете также GameView
добавить new SView()
в конструктор кода вместо.
В любом случае, главное, что компонент не должен заботиться о том, чтобы добавить себя к его родительскому объекту, просто создав собственный контент/дочерние элементы.
Удачи.
Некоторые предложения:
- Основной графический интерфейс будет использовать CardLayout, так что вы можете поменять JPanels легко.
- Основная функция меню выбора игры заключается в замене JPanels, поэтому выбранная игра визуализируется, а затем инициализирует выбранную игру.
- Работайте над каждой игрой индивидуально. Передайте каждому отдельному игровому классу в сторону игры JPanel, чтобы провести игру. Дайте каждому игровому классу основной метод тестирования, который создаст JFrame, создаст экземпляр игрового класса, поместит JPanel экземпляра в JFrame, инициализирует игру и покажет ее.
- Как только игра работает сама по себе, попробуйте добавить ее в свой большой графический интерфейс, который может отображать несколько игр.
- Учитывайте, что каждый класс игры реализует общий интерфейс для общей функциональности. Например, вы можете дать интерфейсу метод initialize(), который будет отменять каждый класс игры.
- Каждый класс игры должен быть основан на MVC, так что у него есть модель, класс управления (ов) для взаимодействия с моделью и класс представления, который отображает состояние модели на JPanel, как указано выше.
+1 Отличный совет по дизайну; ['MainPanel'] (http://stackoverflow.com/a/3072979/230513) - пример третьей. Вы можете использовать любое количество экземпляров для прототипирования вашего большего графического интерфейса. – trashgod
@trashgod: спасибо. Вот моя ссылка для примера MVC: [MVC_ProgressBarThread] (http://stackoverflow.com/questions/5533497/mvc-progress-bar-threading/5533581#5533581) –
Хорошо [пример] (http://stackoverflow.com/вопросы/5533497/MVC-прогресс-бар резьбонарезной/5533581 # 5533581); Я привел это [здесь] (http://stackoverflow.com/a/3072979/230513) как способ реализации шаблона наблюдателя. Не стесняйтесь что-либо редактировать, поскольку возникает необходимость. – trashgod
- 1. Как реализовать мой код в методе иерархии?
- 2. Как правильно реализовать MVC-Pattern в Java?
- 3. Java: Ускорьте мой код
- 4. Где мой код SQL находится в MVC
- 5. Как реализовать MVC в PHP
- 6. Как реализовать MVC Pager?
- 7. Как сделать мой код более MVC, как в Zend Framework
- 8. Почему мой Java-код работает?
- 9. Почему мой код Java переопределяет мой код sql?
- 10. Как реализовать/конденсироваться код
- 11. Реализовать мой собственный метод массива Справка Java
- 12. Как реализовать MVC в jQuery
- 13. Как реализовать MVC в coldfusion
- 14. Как реализовать этот код?
- 15. Как реализовать облачный код?
- 16. mysql блокировка строки и реализовать блокировку, когда мой код хочет
- 17. Как реализовать AJAX весной MVC?
- 18. Как реализовать эффективный хэш-код для объекта-оболочки в Java?
- 19. Как реализовать код для нескольких классов в Java?
- 20. Как реализовать код в codeigniter
- 21. Java добавив проверки в мой код
- 22. Как реализовать Queue в Java?
- 23. Как реализовать код sass
- 24. Мой код бросает исключение NullPointerException в Java
- 25. Преобразование Delphi в Java (мой код правильно?)
- 26. Java: обработка ошибок в проекте MVC. Как правильно реализовать?
- 27. Как реализовать загрузку файлов с помощью Spring MVC в Java?
- 28. Как правильно реализовать MVC в Java с Swing?
- 29. Как реализовать код jsp в android?
- 30. Как реализовать мой класс mysqli_result
Я не вижу веских оснований в любом из приведенного выше кода оригинального плаката для класса, расширяющего JFrame или JPanel. –
Что мне делать с последней строкой? Он имеет рамку в параметре. panel.setLocation ((frame.getWidth() - panel.getWidth())/2, 80); –