Java GUI Вопросы? - PullRequest
       2

Java GUI Вопросы?

4 голосов
/ 28 февраля 2012

Итак, в настоящее время я пытаюсь сделать свою первую простую игру на Java, и я начал работать с GUI. Я уже спланировал, как именно я хочу, чтобы интерфейс выглядел, но на самом деле я не тратил много времени на работу с GUI в java, поэтому я немного растерялся. Я не понимаю, должен ли GUI быть отдельным объектом от логики или встроенным в тот же класс. Например: у меня есть класс карты, который содержит цвет и значение, но лучше ли кодировать отдельный класс только для отображения и использования графики для представления карты, где его слушатели действий используют логику моего фактического объекта Класс карты? Или я просто кодирую и GUI, и Logic в один класс, потому что тогда мне нужно расширить JComponent, а что нет, до моего исходного класса карт.

Кроме того, я действительно смущен тем, как профессионально выглядящий графический интерфейс будет выглядеть как кодирование? Как и в игре League of Legends, клиент был написан на Java, а фрейм даже не является родным фреймом Windows. Являются ли кнопки и рамки и что не все пользовательские изображения закодированы, чтобы быть похожими на кнопки, или компоненты расширяют JComponent и т. Д. Я много знаю о логике программирования Java, как и в AP Computer Science, но этот класс действительно является базовым для GUI, и я не могу найти где-нибудь в Google, чтобы изучить профессиональные методы и практики.

В настоящее время я использую IDE Netbeans

Ответы [ 3 ]

4 голосов
/ 28 февраля 2012

Вы многому научитесь благодаря опыту.

Многие из самых продвинутых интерфейсов даже не похожи на Java. По крайней мере, верхний уровень распространяется на JComponent, но кнопки не обязательно должны. Основное приложение может использовать собственные методы рисования для пользовательских видов или другие библиотеки для отображения трехмерных изображений. Когда у вас появится опыт использования множества различных компонентов и библиотек, вы начнете понимать, как все они могут объединиться в единое приложение.

Чтобы ответить на ваши вопросы объектной модели, определенно используйте отдельные классы от ваших объектов для их отображения. В конечном итоге один объект может использоваться различными частями вашего приложения, передаваться по сетям, отображаться на экранах, отправляться в виде текста или любым количеством разных вещей. Если вы попытаетесь поместить весь этот код в вашу объектную модель, это будет полный беспорядок.

Старайтесь строить методы здравого смысла на ваших объектах. Подумайте, какие методы, вопросы, свойства будут использоваться всеми частями вашего приложения при взаимодействии с этими объектами. Все, что является одноразовым и полезно только в одном месте, не помещайте это в классы основных объектов.

Кроме того, помните, вы всегда можете перенести функциональность. Использование хорошей IDE, такой как Eclipse, позволяет легко поднимать или опускать методы, свойства и другие части класса в суперкласс или подкласс. Если вы пишете некоторую функциональность, связанную с объектом, поместите его в модуль, который его использует. Когда вам понадобятся те же функции в другом модуле, перенесите их в вашу объектную модель, чтобы они могли быть общими. Это легко сделать с помощью правильных инструментов.

0 голосов
/ 28 февраля 2012

Прежде всего, вы должны иметь четкое представление о Java. Я хотел бы рекомендовать вам использовать Swing и IDE NetBeans. На сайте NetBeans вы найдете хороший учебник по GUI и youtube. Надеюсь, это вам очень поможет.

0 голосов
/ 28 февраля 2012

Если вы работаете с AWT или Swing GUI, я бы порекомендовал использовать IDE, например Netbeans , которая имеет встроенный построитель GUI для AWT и Swing.Независимо от того, хотите вы использовать его или нет, он может помочь вам изучить один способ структурирования вашего графического интерфейса.

Как отмечали комментаторы, учебники также очень хороши, хотя лично я нахожу книги очень полезнымилегче читать, чем онлайн-уроки.

Кроме того, завершение кода действительно полезно для чтения документов Java и изучения возможных методов каждого класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...