Каковы основные вещи, о которых должен знать опытный программист Java SWT при переходе на Swing?

Каковы основные отличия, которые могут возникнуть? Какие-либо существенные различия в дизайне приложений? Модели Threading? Как вы собираетесь создавать графические интерфейсы? Любые функции SWT, которые недоступны в Swing?

Ответ 1

Немногие результаты моего опыта между Swing и SWT

  • Рендеринг Swing немного медленнее (мой опыт) и использует гораздо больше памяти
  • Родной взгляд возможен только частично (зависит от выбранного look'n'feel)
  • Большинство компонентов Swing каким-то образом реализует шаблон MVC (так что вам не нужно создавать собственные привязки данных)
  • Это возможно для подкласса компонентов и используется, когда вам нужно изменить поведение какого-либо компонента (поэтому он часто используется)
  • Swing отправляет события, сгенерированные программой (я ненавижу это поведение;])
  • В Swing вам не нужно вызывать (a) метод syncExec() (вам не нужно заботиться о том, какой поток вы обновляете свой графический интерфейс так же, как и в SWT, но обязательно прочитайте Политика потоковой печати (конец страницы) и Concurrency в качели)
  • Качание действительно болтливо (по сравнению с SWT)
  • Больше методов dispose();]
  • Swing имеет стандартный менеджер компоновки в контейнерах (см. BorderLayout) и различные менеджеры компоновки в базе (используйте MigLayout, это для Swing и SWT, а также нет конкурентов).
  • Вам не нужно знать своего родителя при создании экземпляра компонента, но вам понадобится метод .add(Component c) в родительском (контейнере)
  • Swing не зависит от платформы (не более нескольких построек для каждой платформы и x32/x64)
  • У Swing есть свои ошибки (как и другие технологии, это неизбежно)