SWT для Windows Mobile: архитектура интерфейса - PullRequest
1 голос
/ 14 мая 2010

У меня есть приложение для Windows Mobile, написанное на Java, которое использует AWT для пользовательского интерфейса. Я смотрю на портирование пользовательского интерфейса на SWT. Я завладел библиотеками SWT для Windows Mobile, и я начал смотреть, какая работа будет задействована при ее переносе. Я думаю, что первое, что я должен решить, - это как обрабатывать большое количество экранов в приложении.

В AWT пользовательский интерфейс представляет собой один java.awt.Frame с CardLayout. Каждый экран является просто расширением java.awt.Panel и добавляется в кадр. Тогда всякий раз, когда нам нужно перейти на другой экран, мы просто устанавливаем эту панель на самый верхний.

В SWT такого менеджера компоновки нет (и я даже не уверен, что это лучший / наиболее эффективный способ сделать это, так как системные ресурсы, связанные с каждым экраном в приложении, всегда сохраняются). Один из способов, которым я думал об этом, состоял в том, что каждый экран будет иметь свой собственный org.eclipse.swt.widgets.Shell. Переключение с одного экрана на другой потребовало бы, чтобы класс диспетчера отображения создал новый экран (оболочку) и избавился от старого (не уверен в том, что производительность при создании оболочки и всех виджетов снижается при каждом показе экрана?) , Хотя я не уверен, что наличие нескольких оболочек в одном мобильном приложении - хорошая идея ??

Есть ли у кого-нибудь предложения о том, как лучше всего работать с несколькими экранами в мобильном приложении с использованием SWT? Есть ли эквивалент метода, который мы сейчас используем в AWT, то есть CardLayout? Или я прав, полагая, что это не самый лучший способ сделать это, учитывая использование ресурсов для каждого экрана, даже если они не отображаются?

Ответы [ 2 ]

1 голос
/ 04 июня 2010

Таким образом, ответ на мой собственный вопрос, по-видимому, заключается в том, что в SWT фактически есть StackLayout, который в значительной степени идентичен CardLayout в AWT. Таким образом, я могу использовать это, и работа по переносу с одного на другой довольно проста, потому что они действуют одинаково.

0 голосов
/ 14 мая 2010

Не знаю, как это будет выглядеть в Windows Mobile, но MigLayout - отличный менеджер макетов для SWT, который может поддерживать тип макета, который вы описываете.
Проверьте его демонстрации.

...