這似乎是一個問題,答案是隱含的,因此我找不到任何明確的。GWT對Java佈局管理器有多少支持?
Google Web Toolkit是否僅支持自定義佈局管理器或Java佈局管理器的子集?
例如,是否可能使用GroupLayout獲取Java Swing應用程序並使其與GWT一起使用?
這似乎是一個問題,答案是隱含的,因此我找不到任何明確的。GWT對Java佈局管理器有多少支持?
Google Web Toolkit是否僅支持自定義佈局管理器或Java佈局管理器的子集?
例如,是否可能使用GroupLayout獲取Java Swing應用程序並使其與GWT一起使用?
GWT佈局支持是通過「Panel」的子類完成的。他們中的一些人像'DockPanel'的行爲有點像Swing佈局(BorderLayout),但你永遠無法獲得Swing代碼並將其編譯到GWT中。
當談到GWT時,這是一種常見的誤解。它是用Java編寫的,因爲Java是靜態類型的,並且被世界級的編輯者廣泛支持。它用Java編寫的事實與GWT團隊希望允許您將SWT/AWT/Swing移植到GWT無關。Web是與桌面不同的環境,並且由於您的代碼最終編譯爲JavaScript,因此採用任何類型的Java桌面應用程序並點擊「轉換」按鈕都將毫無意義。這就是小程序試圖做很多年前......我們都知道該如何橫空出世;)
不,GWT不支持來自Swing/AWT的佈局管理器。這些不兼容。
不兼容的根源在於那些API是完全不同的技術。 Swing/AWT是基於像素的,而GWT呈現爲HTML。 GWT佈局只是輸出不同的HTML標籤(div/table/inline元素,...),而Swing/AWT佈局實際上計算的是兒童組件的位置。在GWT中,兒童的位置通過瀏覽器計算出來。
好的,謝謝。你不會碰巧知道解釋不兼容性的任何消息來源嗎? +1 – Grundlefleck 2009-04-18 10:53:52
大多數底線問題是萬維網不是桌面應用程序,無論您想要多少。涉及的問題很多,有一些是我們想到的:
WWW是無狀態的,桌面應用程序不是。通常通過cookies,URI參數和會話管理來使WWW成爲有狀態的,現在我們已經有了幾十年了,我們已經完成了WWW的有狀態/無狀態問題。用一些形式的XML和通常用CSS描述的WWW頁面(現在的),其中頁面被描述爲樹。與桌面應用程序相比,雖然它可能與XML和簡單的組件集羣幾乎完全相同,但它不完全相同。最大的問題之一就是在DA這些組件中,小部件在狀態上本質上是應用程序級別,而在WWW中,您最多可以真正具有狀態級別,甚至需要JavaScript/AJAX 。
所以,直接使用佈局管理器是不行的。但是,假設您使用的Web UI框架允許它,您可以創建一些與佈局管理器非常類似的行爲。雖然我不知道GWT的具體情況,但我相信至少可以在JSP(或我最喜歡的Apache Wicket)中執行一個簡單的佈局管理器,並使它的行爲與Swing佈局管理器一樣。
請注意,我確實的意思是將佈局管理器的整個概念重新創建爲一組專門的類/ whatnot,就像PeterŠtibraný回答的那樣,GWT並不直接支持它們(事實上我沒有聽說過除了Swing以外的任何東西),我相信它將更多地爲Swing佈局管理器創建一個包裝/適配器,而不僅僅是爲WWW創建自己的,適當的。
如果你想要一個Swing的Web應用程序,考慮AjaxSwing,但對於網絡延遲和消耗服務器資源進行製備。我認爲只要有SVG/VML的庫,我們會看到更多的東西移動到網絡上。如果您想查看JavaScript IDE,請查看Sun Labs的Lively Kernel。有人試圖將Swing移植到GWT上嗎?似乎很明顯,有很多Swing可以移植到GWT的AjaxSwing,也許不是Java2D的東西。可能有些聰明的公司會想出如何將Swing轉換爲網絡客戶端技術。
不過已經有了[JGoodies數據的端口(http://code.google.com/p/gxt-jglayout),這可能是你所需要的一切。 – maaartinus 2011-03-21 18:52:20