Сборка пользовательского интерфейса Java для запуска на всех платформах - PullRequest
3 голосов
/ 07 августа 2010

Я действительно не понимаю, что использовать. Опции, которые я вижу, это AWT, Swing и SWT.

У меня вопрос, который должен быть лучшим для настольного Java-приложения на всех платформах (Mac, Windows и Linux) с минимальным зависимым от платформы кодом?

Ответы [ 3 ]

5 голосов
/ 07 августа 2010

AWT устарел, хотя некоторые его классы и дизайн лежат в основе Swing API.

Вот мой взгляд на различия между созданием приложений в Swing и SWT:

Swing

  • + Является частью стандартной платформы Java-SE, поэтому меньше проблем с распространением
  • + Вы можете создать единообразный внешний видплатформы
  • + Элементы управления легки, поэтому создавать свои собственные относительно легко
  • - Если вам нужны приложения Swing, чтобы выглядеть как собственные приложения, в них может быть много работы;Swing может быть стилизован под платформу look'n'feel, но результаты не всегда достаточно близки, чтобы удовлетворить всех

SWT

  • + Легко создавать простые приложения, использующие собственные виджеты
  • - Ручное управление ресурсами
  • - Вам необходимо распространять библиотеки для конкретной платформы
  • -Вы столкнулись с проблемой наименьшего общего знаменателя - не все виджеты доступны на всех платформах, поэтому некоторые из них будут в любом случае настроены для SWT

Хотя я поставил намного больше минусов против SWT, я бы не сталНе сбрасывай со счетов.Какую технологию вы выберете, будет зависеть от требований вашего проекта.Выбор библиотеки - это только начало, когда дело доходит до разработки пользовательского интерфейса.

Swing - это простой и не требующий обслуживания вариант, и я согласен с другими авторами, что это, вероятно, лучше всего соответствует вашим потребностям.

5 голосов
/ 07 августа 2010

Качели.

AWT старый и слишком низкоуровневый, SWT имеет нативные компоненты и не поставляется с JRE (это сторонняя библиотека). Качели высокого уровня (-ish) и чисто-java.

1 голос
/ 07 августа 2010

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

Существует JSR для Swing Application Framework , который я использовал, когда он еще находился в активной разработке, но в настоящее время он заморожен.На их странице проекта рекомендуется fork этого проекта, а другой - GUTS , который использует Google Guice в качестве своего внедрения зависимости.Netbeans также имеет Netbeans Platform .

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

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