Графические интерфейсы Java - ускорение обучения - PullRequest
0 голосов
/ 20 июля 2011

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

Я бы сказал, что я неЯ новичок в Java, но больше опытный пользователь, привыкший к API, но все же неловко по нескольким ключевым словам.Я чувствую себя комфортно с ООП, в основном благодаря разработке на PHP.

Есть ли какие-то советы, которые люди могут придумать, чтобы помочь ускорить кривую обучения, например, "не делай ЭТО" или "Я бы хотел, чтобы кто-то сказал мне этоТип вещей.

Первым, на который я наткнулся в нескольких других вопросах, был нулевой менеджер компоновки - по-видимому, это плохое программирование и приводит к неприятностям в будущем.Таким образом, это помогает мне сразу, вероятно, сэкономило неделю и несколько переписывает прямо там.

Другим было использование NetBeans для перемещения в Swing ... но я пока не могу подробно остановиться на этом, требуется некоторое исследование.

Существуют ли еще какие-либо сильные рекомендации?

Ответы [ 7 ]

4 голосов
/ 20 июля 2011

Существуют ли еще какие-либо сильные рекомендации?

Также на общей теме макетов, не тратьте время, пытаясь найти «правильный» макет, когда комбинация вложенных макетов даст эффект.См. Пример вложенного макета для примера кода.

image

3 голосов
/ 20 июля 2011

Возможно, вы захотите проверить следующее:

JGoodies имеет знаменитый FormLayout и другие вещи: http://www.jgoodies.com/

SAF JSR-296 реализация fork: http://kenai.com/projects/bsaf/pages/Home

Apache Commons, особенно lang, если вы их еще не используете, вы на неправильном пути: http://commons.apache.org/

Не уверен насчет SwingX прямо сейчас, но, похоже, стоит взглянуть на него какхорошо: Кто-нибудь использует расширения Swing для Swing?

Практика Java, общие полезные вещи: http://www.javapractices.com

Вам определенно следует изучить использование существующих фреймворков иинструменты.Это помогает много читать заранее, чтобы получить картину, вместо того, чтобы копать в себе много.Существует практически все, кроме библиотеки для общих переводов в настольных приложениях, например, для общих действий (пунктов меню).

Редактировать: Ах, и не забудьте SwingWorker ...

3 голосов
/ 20 июля 2011

Если вы используете Eclipse , вы можете попробовать WindowBuilder Pro , который является дизайнером графического интерфейса с открытым исходным кодом и является частью проекта Eclipse. Код, который он генерирует, чрезвычайно удобочитаем. Честно говоря, с этим инструментом я бы больше не занимался разработкой пользовательского интерфейса вручную. Это делает Swing и SWT, между прочим. Также имеется поддержка многих мощных менеджеров компоновки (включая MigLayout!).

enter image description here

2 голосов
/ 20 июля 2011

Еще одним было использование NetBeans для перемещения по Swing ...

Я не фанат использования IDE для генерации, потому что теперь вы привязаны к IDE и не можете перейти от IDE к IDE.

Вы вынуждены следовать структуре кода, который они генерируют. Мне нравится полностью контролировать код.

1 голос
/ 20 июля 2011

Мне очень нравится GridBagLayout.Также полезно знать Flow и Box Layout и групповую разметку, если у вас есть Java 6. В IDE NetBeans есть действительно интуитивно понятный менеджер графического интерфейса, но способ кодирования вещей немного странен.Нулевой макет, конечно, обладает большей гибкостью, но, как вы сказали, не является хорошей практикой, и, кроме того, я сомневаюсь, что вам понадобится больше функциональности, кроме редких случаев.

1 голос
/ 20 июля 2011

Swing - это просто GUI API (и все, что связано с программированием GUI, например, MVC, будет применимо, и эта тема хорошо освещена в литературе по CS).

Просто обратите внимание на следующее предостережение (которое на самом деле применимо к большинству систем с графическим интерфейсом, поскольку оно значительно упрощает задачу написания таких библиотек):

Это «активная подсистема», которая имеет собственный выделенный поток. Разберитесь с проблемами в Swing, как использовать SwingWorker и т. Д.

Что касается инструментов, последний раз я проверял, что NetBeans был королем холма на земле Свинг (но это было до ора). Если вам не нравится этот инструмент, сделайте себе одолжение и, по крайней мере, создайте пример приложения и посмотрите, как IDE организует ваше приложение для вас. Прямо здесь собрано множество коллективных знаний.

1 голос
/ 20 июля 2011

Не относится к программированию пользовательского интерфейса, но я настоятельно рекомендую вам прочитать Эффективная Java .

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