我開始使用GWT並構建自己的Button。我閱讀了最佳實踐,並且我應該擴展Composite而不是Widget。但爲什麼?在Stackoverflow上,我讀到GWT Widgets對於某些瀏覽器有特殊的行爲,但是當我擴展一個Widget時,行爲不會丟失,是嗎?關鍵是,我想要一個Button,只是另一種風格。而且因爲我不止一次需要它,所以我不想一直重複這些代碼。但是如果我擴展Composite,我必須提供像Button一樣的方法來傳遞setClickHandler(...)之類的東西。這看起來像很多開銷。GWT擴展複合代替Widget
1
A
回答
4
使用你想創建複雜小部件的Composite。 Composite類允許您在小部件中使用其他現有小部件。
對於你的情況,只是子類的Button小部件,因爲你不想爲你的按鈕增加複雜性。
+0
謝謝,這就是我的想法。好的人確認它:) – lrxw 2011-03-31 12:58:41
1
擴展複合或按鈕(差)是沒有必要的, 您可以創建類,它擴展沒有其他類(按鈕..)如下:
public class MyButton {
Button btn= new button("btn");
VerticalPanel vpanel= new VerticalPane();/* or HorizontalPanel ..*/
/* add whatever you need */
public MyButton(){
/* add style to button and or to vpanel use btn.setStyleName("style-name") */
vpanel.add(btn)
}
public Button getButton(){ return btn; }/* it allows you get button to add ClickHandlers..*/
public Widget asWidget() { return vpanel; } /* Widget because mybe you ll need HozonalPanel */
/* you can add more features: ... */
相關問題
- 1. GWT擴展Widget類
- 2. 擴展GWT的Widget類
- 3. 擴展LinearLayout for App Widget
- 4. Python:os.listdir替代/某些擴展
- 5. 擴展複合模式?
- 6. GWT Stack Widget
- 7. GWT SuggestBox + ListBox Widget
- 8. 用GWT代替éàçè...在GWT
- 9. GWT擴展常量接口
- 10. 我該如何擴展GWT
- 11. 複合在GWT
- 12. GWT uibinder複合
- 13. 如何創建JavaScript黑莓Widget擴展?
- 14. TYPO3 shibboleth_auth替代和擴展定製
- 15. 替代面板在Firefox擴展
- 16. 用擴展方法替代本地化
- 17. 替代擴展ArgumentMatcher參數驗證mockito
- 18. Chrome擴展替代本地存儲?
- 19. Edge擴展的browser.alarms的替代方案
- 20. 如果我在GWT中擴展Widget,如何使用祖先的EventBus?
- 21. GWT Acegi替代品
- 22. 垂直可擴展複合材料
- 23. Roo + GWT - 適合發展?
- 24. 很好的替代GWT的GWT
- 25. 擴展Scala集合
- 26. JQuery UI Widget工廠替代品
- 27. ext gwt刪除(Widget)問題
- 28. 將GWT Widget封裝到SmartGWT
- 29. GWT HTML Widget XSS安全
- 30. 從Firefox擴展替換nsICertificateDialogs
只是想知道...你真的需要子類Button是否符合你的要求?在決定子類之前,你是否嘗試過setStyleName/stylePrimaryName和類似的CSS訪問器?爲什麼它不工作? – 2011-03-31 11:52:42
不,我只是不想重複總是setStyleName :-) – lrxw 2011-03-31 12:57:15
在這種情況下,子類化是完全沒問題的,因爲你不會覆蓋可能會破壞瀏覽器兼容性的渲染方法。 – 2011-03-31 13:02:09