Каковы основные отличия, которые могут возникнуть? Какие-либо существенные различия в дизайне приложений? Модели Threading? Как вы собираетесь создавать графические интерфейсы? Любые функции SWT, которые недоступны в Swing?
Каковы основные вещи, о которых должен знать опытный программист Java 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 есть свои ошибки (как и другие технологии, это неизбежно)