2010-05-14 68 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佈局管理器,它可能支持您描述的佈局類型。
看看它的演示。