2010-05-14 33 views
1

我有一个用Java编写的Windows Mobile应用程序,它使用AWT作为用户界面。我正在考虑将UI移植到SWT。我掌握了用于Windows Mobile的SWT库,并开始考虑实际将其移植到哪些工作中。我认为我必须决定的第一件事是如何处理应用程序中的大量屏幕。用于Windows Mobile的SWT:UI体系结构

在AWT中,UI基本上是带CardLayout的单个java.awt.Frame。每个屏幕就是java.awt.Panel的扩展,并被添加到Frame中。然后,无论何时我们需要切换到不同的屏幕,我们只需将该面板设置为最上方。

SWT没有这样的布局管理器(我甚至不确定这是否是最好/最有效的方法,因为与应用程序中每个屏幕相关的系统资源总是保持不变) 。我认为这样做的一种方式是每个屏幕都是自己的org.eclipse.swt.widgets.Shell。从一个屏幕切换到另一个屏幕会涉及一个显示管理器类创建新的屏幕(外壳)和处理旧的屏幕(不知道每次显示屏幕时创建外壳和所有小部件的性能如何?) 。我不确定如果在一个移动应用程序中使用多个shell是个好主意?

有没有人对使用SWT在移动应用程序中处理多个屏幕的最佳方式有任何建议?是否有与我们目前在AWT中使用的方法(即CardLayout)等价的方法?或者我认为这并不是真正实现它的最好方式,即使它们没有被显示,每个屏幕都使用了资源吗?

回答

1

所以对我自己的问题的答案似乎是实际上在SWT中有一个StackLayout,它与AWT中的CardLayout非常相似。所以我可以使用它,并且从一个移植到另一个的工作非常简单,因为它们的行为方式相同。

0

不知道它将如何在Windows Mobile中播放,但MigLayout是一个伟大的SWT布局管理器,它可能支持您描述的布局类型。
看看它的演示。