Богатые клиентские платформы против JavaFX 2 против Swing

Довольно скоро нам понадобится разработать графический интерфейс для создания конфигураций (больше похоже на скрипты, если честно) для нашего решения EAI в действии. Представьте себе типичный редактор рабочего процесса. Визуализация реальных потоков, скорее всего, будет полностью настраиваемой задачей, будь то в Swing, SWT или JavaFX 2. У меня проблемы с выбором, делать ли все остальное самостоятельно или использовать многофункциональную клиентскую платформу.

В частности, я заметил, что JavaFX 2 привлекает много внимания и, кажется, действительно продвигается Oracle как следующая большая вещь в ландшафте графического интерфейса Java. Демонстрации выглядят интересными, и, возможно, этот новый API больше ориентирован на производительность, а не на тонны шаблонного кода, который Swing имеет тенденцию навязывать. Использование более новой технологии, пользующейся большой поддержкой, кажется беспроигрышным вариантом для будущего обслуживания.

Использование RCP имело бы определенные преимущества для этого проекта. Независимо от того, выберем ли мы Eclipse или NetBeans в качестве платформы, наличие существующих подключаемых модулей / модулей для просмотра базовой (XML) конфигурации, контроля версий и т. Д. Обеспечит мощную функциональность с минимальными усилиями. Мне также нравится идея иметь типы проектов нашего программного обеспечения рядом с проектами Java в одном и том же графическом интерфейсе. Даже простые вещи, такие как управление окнами и индивидуальная компоновка панелей, намного лучше обрабатываются RCP, чем то, что мы могли бы создать.

Итак, вопрос теперь в том, какая технология или их комбинация жизнеспособны? Насколько я понимаю, у меня есть следующие варианты:

  • Затмение. Однако я не очень хочу использовать SWT, так как я больше знаком с Swing. NetBeans - это также моя основная среда IDE, и я с ней больше всего знаком. Это всегда казалось более интуитивным.
  • NetBeans. Это позволило бы разрабатывать собственные компоненты в Swing. Для меня более низкая кривая обучения.
  • NetBeans + JavaFX 2. Эта идея мне нравится ... Используйте NetBeans для совершенства RCP и использование JavaFX 2 для настраиваемых компонентов. JavaFX 2 очевидно интегрируется со Swing, но насколько хорошо это можно сделать в NetBeans?
  • Swing или JavaFX 2. Выполняйте всю работу с графическим интерфейсом самостоятельно или используйте существующую структуру (и), чтобы получить большую часть того, что предлагает RCP. Это кажется большим трудом, но также предлагает превосходный контроль. Мне немного неприятно пробовать это в Swing. Насколько хорошо для этого подходит JavaFX 2?

По сути, мой единственный опыт работы с графическим интерфейсом - это Swing для небольших приложений. Я впервые собираюсь сделать что-то, что требует RCP. Но JavaFX 2 кажется продвижением вперед, и я не хочу упускать из виду его. Если Swing скоро исчезнет, ​​я бы предпочел использовать более новую технологию.

Если есть люди, которые могут поделиться своим опытом, попробовали что-то вроде NetBeans + JavaFX 2 или ближе к передовой технологии JavaFX и могут рекомендовать / отговаривать его от использования для такого рода вещей, я был бы наиболее заинтересован.

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


person G_H    schedule 15.11.2011    source источник
comment
Вы сделали выбор? Было бы интересно получить ваши отзывы, особенно если вы выбрали Java FX 2.   -  person assylias    schedule 13.05.2012
comment
@assylias Выбор будет в пользу NetBeans в качестве RCP, но еще неизвестно, буду ли я использовать только компоненты Swing для его обогащения или интегрировать JavaFX 2. Разработка еще не началась. Видя, как JRE 1.7 включает среду выполнения JFX2, начиная с обновления 4, становится все удобнее использовать ее. Есть поддержка Windows и Mac OS X, скоро появится Linux.   -  person G_H    schedule 14.05.2012
comment
Не думаю, что вы захотите рассказать, как все прошло? : D. Моя команда прямо сейчас изучает платформу fx2 и netbeans, а также некоторые другие альтернативы.   -  person simgineer    schedule 14.05.2014


Ответы (3)


Вот некоторые моменты и (личные) мнения, которые помогут вам найти правильное решение для вашей текущей ситуации:

Eclipse против Netbeans

Лично я не люблю больших дискуссий о плюсах и минусах IDE. Просто используйте тот, который вам удобнее всего. Если вы работаете в команде, сделайте голосование. Учитывая Swing, обе IDE в порядке (IMHO Netbeans имеет лучший конструктор графического интерфейса). Учитывая JavaFX 2.0, обе IDE также хороши, но у обеих отсутствует построитель графического интерфейса. Я бы не рекомендовал смесь IDE.

JavaFX 2.0, Swing, SWT, Eclipse RCP

Что ж, я не - я даже не могу - хочу сказать вам, какая из перечисленных выше технологий пользовательского интерфейса является лучшей, поскольку я недостаточно знаю о среде вашего проекта - опыте, людских ресурсах, бюджете, сроках и т. Д. сжатые сроки и команда (?) опытных разработчиков Swing должна привести решение к Swing. То же самое для SWT и Eclipse RCP. Передовые разработчики могут попробовать JavaFX. Я согласен, JavaFX привлекает много внимания, и вы получаете великолепные демонстрации, но имейте в виду, что для использования JavaFX требуется - в дополнение к JRE - среда выполнения JavaFX на каждом клиенте.

Надеюсь это поможет.

person pmoule    schedule 15.11.2011
comment
Безусловно действительные баллы. Я не уверен, в чем заключаются преимущества Eclipse по сравнению с NetBeans в качестве платформ (на мгновение игнорируйте IDE), просто NetBeans кажется мне более естественным. Что касается разработчиков графического интерфейса, то я в любом случае не являюсь их большим поклонником и предпочитаю ручной подход. NetBeans будет первым продуктом с хорошей поддержкой разработки JavaFX (и, возможно, с использованием его под капотом), но требования среды выполнения действительно дают пищу для размышлений. Возможно, мне стоит посмотреть, как быстро они получат поддержку OS X и Linux. Спасибо! - person G_H; 16.11.2011
comment
К вашему сведению - SWT также требует наличия собственной библиотеки на каждом клиенте (из-за ее тесной интеграции с базовой ОС) - person cs94njw; 14.09.2017

Мое мнение в нескольких строках,

JavaFX2 может быть интегрирован в приложения Swing и SWT в панель / контейнер.

Swing не предоставляет структурированной архитектуры для работы с многокомпонентными приложениями, Eclipse RCP предоставляет, но он более тяжелый, а иногда и слишком сложный (WindowWorkbench и т. Д.) И сложный в настройке.

Если в вашей команде есть хороший дизайнер пользовательского интерфейса (разработчик или графический дизайнер), вам следует начать работу над приложением Full JavaFX2 с простой, но мощной структурой (например, JRebirth или специальной, которую вы можете создать по своему усмотрению).

JavaFX будет стандартом пользовательского интерфейса Java на долгие годы. Это не может быть плохим выбором, поэтому его архитектура довольно хорошая и мощная. Более того, javaFX2 можно использовать в браузере и / или развернуть в Интернете с помощью JNLP. Не утруждайте вас изучением сложной недокументированной структуры (например, EclipseRCP), создайте свой !! и будьте свободны создавать приложение, необходимое вашему клиенту: D

Я работал 3 года над Swing Appz, 2 года над Eclipse RCP и 2 года над приложениями Flex / Silverlight / JavafX.

person Sébastien B.    schedule 12.01.2012

Мы перешли на javaFx из-за использования FXML, вы можете использовать шаблон MVC, вы можете добавить javascript и css init, но это кажется медленным при смене страницы

person Ali.Mojtehedy    schedule 05.06.2014