Запуск SWT-компонентов в приложении Swing - PullRequest
3 голосов
/ 06 марта 2009

Мне было интересно, есть ли у кого-нибудь опыт запуска сложного пользовательского интерфейса SWT, размещенного внутри компонента Swing.

Мне удалось запустить очень простую демонстрацию, но если кто-то еще попытался, но не смог / преуспел в этом, было бы здорово поучиться на их опыте.

Итак, чтобы повторить, что мое приложение - это приложение Swing, я хочу использовать сложный компонент пользовательского интерфейса SWT (перетаскивание, всплывающие окна и диалоги) - кто-нибудь справился с этим?

Ответы [ 2 ]

3 голосов
/ 17 марта 2009

Я использовал и Swing, и SWT, хотя никогда раньше не работал в одном приложении / проекте.

Пока вы не пытаетесь смешивать компоненты в одном и том же окне, я не вижу причин, по которым у вас не может быть совершенно отдельных окон / диалогов, каждый из которых использует определенный набор виджетов. Однако попытка смешать SWT и Swing в одном окне, скорее всего, никогда не сработает или, по крайней мере, вызовет множество проблем, поскольку оба набора виджетов полагаются на совершенно разные средства рисования / разметки - все компоненты Swing обрабатываются непосредственно в Java и полностью отделен от базовой ОС, в то время как SWT явно полагается на базовую ОС для выполнения всей (или большей части) визуализации графического интерфейса. Попытка смешать их, вероятно, вызовет всевозможные проблемы.

Конечно, я отброшу и обычный ответ "это не рекомендуемая практика": если здесь у вас нет действительно конкретной цели, смешивать разные наборы виджетов в одном приложении не очень хорошая идея , У Swing и SWT есть две совершенно разные философии и базовые архитектуры. На самом деле SWT был рожден из-за того, что IBM / OTI не понравился подход, использованный в Swing, и поэтому он решил реализовать свои собственные виджеты. С такими контрастными подходами к графическим интерфейсам вам лучше выбрать один и придерживаться его, а не смешивать два вместе.

2 голосов
/ 11 мая 2009

Смешивать Swing и SWT - не лучшая вещь, но если у вас нет вариантов, это не очень сложно убить зверя. Просто попробуйте применить некоторые правила / стандарты в вашем коде. например. сохраняйте все диалоги в Swing (не используйте сочетание обоих, если нет причин для этого), используйте соглашения об именах, чтобы различать компоненты Swing и SWT и т. д. Убедитесь, что вы хорошо знаете, как Swing и SWT Компоненты обрабатываются OS / JVM, прежде чем приступить к решению сложных проблем пользовательского интерфейса.

Следует обратить внимание на перетаскивание между компонентами Swing и SWT. Это немного сложно, но особенно если вы начинаете добавлять пользовательские типы данных.

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