Я веб-разработчик в день и думаю о создании моего первого реального настольного приложения. Идея состоит в том, чтобы создать инструмент, который автоматизирует очень повторяющуюся задачу в веб-приложении, где нет API.
Я знаю, что хочу использовать Java. Я использовал его раньше для веб-приложений, хорошо знаю синтаксис и хочу, чтобы приложение было кроссплатформенным как можно проще.
Я не уверен, стоит ли мне использовать SWT или Swing. Поскольку моя основная аудитория использует Windows, я хочу, чтобы она выглядела как можно более родной. Linux и Mac должны работать, но внешний вид здесь не так важен.
Итак, каковы аргументы за и против каждого UI Framework, Swing или SWT?
Спасибо.
PS: я разрабатываю на Windows, используя Eclipse. Но думал об игре с Netbeans.
Ответы:
Плюсы Swing:
Минусы Свинга:
Плюсы SWT:
Минусы СВТ:
источник
Важно учитывать, что некоторые пользователи и некоторые реселлеры (Dell) устанавливают 64-битную виртуальную машину на свои 64-битные Windows, и вы не можете использовать одну и ту же библиотеку SWT на 32-битных и 64-битных виртуальных машинах.
Это означает, что вам нужно будет распространять и тестировать разные пакеты в зависимости от того, есть ли у пользователя 32-битная или 64-битная Java VM. Посмотрите эту проблему , например, на Azureus, но она есть и в Eclipse, где на сегодняшний день сборки на передней странице загрузки не работают на 64-битной виртуальной машине.
источник
про свинг:
Но в итоге я бы не предложил использовать «чистый» свинг или свт ;-) Существует несколько каркасов приложений для свинг / свт аут. Посмотрите здесь . Крупнейшие игроки - NetBeans (свинг) и Eclipse (SWT). Другим хорошим фреймворком может быть griffon, а хорошим «набором компонентов» является pivot (swing). Griffon очень интересен, потому что он объединяет множество библиотек и не только свинг ; также Pivot, SWT и т. д.
источник
Я бы использовал Swing по нескольким причинам.
Это было дольше и было приложено больше усилий для развития. Следовательно, он, вероятно, более полнофункциональный и (возможно) имеет меньше ошибок.
Существует много документации и других руководств по созданию эффективных приложений.
Если вы хотите создать очень многофункциональное приложение, вы можете проверить RCP NetBeans (Rich Client Platform). Есть кривая обучения, но вы можете быстро собрать хорошие приложения с небольшой практикой. У меня недостаточно опыта работы с платформой Eclipse, чтобы принять верное решение.
Если вы не хотите использовать весь RCP, в NetBeans также есть много полезных компонентов, которые можно извлечь и использовать независимо.
Еще один совет, посмотрите на разных менеджеров по расположению. Они долго меня сбивали с толку, когда я учился. Некоторые из лучших отсутствуют даже в стандартной библиотеке. Инструменты MigLayout (для Swing и SWT) и JGoodies Forms, на мой взгляд, являются двумя лучшими.
источник
Я бы выбрал свинг только потому, что он «родной» для Java.
Кроме того, посмотрите на http://swingx.java.net/ .
источник
Для ваших требований звучит так, что суть в том, чтобы использовать Swing, так как с ним немного легче начать работу, и он не так тесно интегрирован с собственной платформой, как SWT.
Свинг обычно является безопасной ставкой.
источник
Интересный вопрос. Я не знаю SWT слишком хорошо, чтобы хвастаться этим (в отличие от Swing и AWT), но вот сравнение, сделанное на SWT / Swing / AWT.
http://www.developer.com/java/other/article.php/10936_2179061_2/Swing-and-SWT-A-Tale-of-Two-Java-GUI-Libraries.htm
А вот сайт, на котором вы можете получить учебное пособие по любому предмету на SWT ( http://www.java2s.com/Tutorial/Java/0280__SWT/Catalog0280__SWT.htm ).
Надеюсь, вы примете правильное решение (если есть верные решения в кодировании) ... :-)
источник
Если вы планируете создавать полнофункциональные приложения с более чем несколькими функциями, я предлагаю перейти к использованию Eclipse RCP в качестве платформы.
Если ваше приложение не станет слишком большим или ваши требования слишком уникальны для нормальной бизнес-среды, вы можете спокойно перейти на Swing.
В конце дня я бы предложил вам попробовать обе технологии, чтобы найти ту, которая подходит вам лучше. Как и Netbeans против Eclipse против IntelliJ, здесь нет абсолютно правильного ответа, и обе платформы имеют свои недостатки.
Pro Swing:
Pro SWT:
источник
Одна вещь, чтобы рассмотреть: Screenreaders
По некоторым причинам некоторые компоненты Swing не работают должным образом при использовании программы чтения с экрана (и Java AccessBridge для Windows). Знайте, что разные программы чтения с экрана приводят к разному поведению. И по моему опыту, SWT-дерево работает намного лучше, чем Swing-Tree в сочетании с программой чтения с экрана. Таким образом, наше приложение использовало компоненты SWT и Swing.
Для распространения и загрузки надлежащей SWT-библиотеки вы можете найти эту ссылку полезной: http://www.chrisnewland.com/select-correct-swt-jar-for-your-os-and-jvm-at-runtime-191
источник
SWT был создан как ответ на медлительность Свинга на рубеже веков. Теперь, когда различия в производительности становятся незначительными, я думаю, что Swing - лучший вариант для ваших стандартных приложений. У SWT / Eclipse есть хорошая структура, которая помогает с большим количеством кода котельной плиты.
источник