AWT XOR SWING вместе в одном приложении? - PullRequest
3 голосов
/ 16 апреля 2011

Я занимаюсь разработкой графического интерфейса пользователя Java для инструмента биологического анализа.У меня вопрос: могу ли я использовать библиотеки AWT и SWING в одном шаблоне проектирования Model View Control?Или они две библиотеки управляются по-разному?Я хотел бы знать, могу ли я привести их под одной крышей для повторного использования существующего кода, написанного с обеими библиотеками.Большое спасибо за уделенное время.

Ответы [ 2 ]

4 голосов
/ 16 апреля 2011

Swing построен на основе AWT, вы можете смешивать Swing и AWT, и он будет работать технически, но с некоторыми ограничениями:

  • тяжелые и легкие компоненты: компоненты в AWT тяжелые- они соответствуют окну родной ОС.Это означает, что все компоненты AWT отображаются над родственными компонентами Swing.(Например, поместите список AWT и свинг-JList в один и тот же контейнер, и список всегда будет отображаться над JList.)

  • Внешний вид: компоненты AWT выглядят и чувствуют себя как родные,так как они являются родными компонентами.Компоненты Swing имеют подключаемый внешний вид, который определяет их внешний вид и поведение.Если вы выбираете L & F в соответствии с собственной платформой, эти компоненты являются всего лишь «имитацией» собственного внешнего вида и могут вести себя не так, как их аналоги AWT.(Например, JButton против кнопки awt.)

По этим причинам может быть целесообразно использовать только одну библиотеку пользовательского интерфейса, предположительно Swing.

РЕДАКТИРОВАТЬ: JDK 6 (обновление12) предлагает бесшовную интеграцию тяжелых и легких компонентов, поэтому смешивание будет работать без проблем.Таким образом, первая точка зрения больше не соответствует действительности, но наличие противоречивого внешнего вида между двумя наборами инструментов пользовательского интерфейса все еще остается в силе.

3 голосов
/ 16 апреля 2011

Привет Да, вы можете использовать оба. Но в этом нет необходимости, тем более что не рекомендуется смешивать эти два.

Например, у вас могут возникнуть серьезные проблемы, так как AWT не имеет понятия «глубина». Нет разных слоев и т. Д. Другие проблемы, например, внешний вид компонентов этих каркасов отличается.

EDIT: Я люблю этот ресурс. Иди дальше и прочитай, что есть все упомянутые проблемы с иллюстративными примерами, о которых ты должен знать, когда собираешься смешать эти два. http://java.sun.com/products/jfc/tsc/articles/mixing/

Oi, Boro.

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