2013-02-08 197 views
1

我有模態窗口的問題。我將這兩種方法稱爲setIsModal(true)setShowModalMask(true),但爲什麼我的窗口不是模態的?SmartGWT模態窗口

這裏是代碼:

Window summaryWindow = new Window(); 
summaryWindow.setWidth(950); 
summaryWindow.setHeight(620); 
summaryWindow.centerInPage(); 
summaryWindow.setCanDragReposition(false); 
summaryWindow.setIsModal(true); 
summaryWindow.setShowModalMask(true); 
summaryWindow.setShowMinimizeButton(false); 
summaryWindow.setTitle("Example"); 
summaryWindow.addItem(new Button("Example"); 
summaryWindow.show(); 
+2

給你的代碼呢? – Parvathy 2013-02-08 12:11:37

+0

檢查了這個http://www.java2s.com/Code/Java/GWT/ModalwindowwithcontrolsSmartGWT.htm – 2013-02-08 12:35:01

+1

作爲@Parvathy說..也顯示代碼。 – 2013-02-08 12:35:35

回答

2

你得到的例外是有效的。在任何與GWT相關的技術中,您都會發現許多用於設置GWT小部件屬性的API功能。例如,對於一個Window插件你有,setWidthsetHeightcenterInPage等等

現在一些屬性必須是小部件在DOM渲染的瀏覽器&他們中的一些必須後的應用之前應用小部件在瀏覽器的DOM中呈現。

ShowModalMask()是一個屬性,您只能在呈現窗口小部件之前設置它。 centerInPage()是在瀏覽器&的DOM中呈現Window的屬性,這就是您得到該異常的原因。

以適當的順序應用屬性(centerInPage()在您的案例中ShowModalMask()之後)以避免這種異常。

0

我使用SmartGWT的2.4:如果我嘗試你的代碼按鈕調用它封閉在一個方法,我得到這表明我不能setModalMask修改它的錯誤( IllegalStateException - this property cannot be changed after the component has been created)。 只是它的工作instanciation後移動此調用後:

Window summaryWindow = new Window(); 
summaryWindow.setShowModalMask(true); 

我真的不明白,但讓我知道,如果它也爲你工作