我有模态窗口的问题。我将这两种方法称为setIsModal(true)
和setShowModalMask(true)
,但为什么我的窗口不是模态的?
以下是代码:
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();
答案 0 :(得分:2)
您获得的例外有效。在任何GWT相关技术中,您将找到许多API功能来设置GWT小部件的属性。例如,对于Window
小部件,setWidth
,setHeight
,centerInPage
等...
现在,必须在浏览器的DOM中呈现窗口小部件之前应用其中一些属性。其中一些必须在窗口小部件在浏览器的DOM中呈现后应用。
ShowModalMask()
是一个只能在呈现窗口小部件之前设置的属性。
centerInPage()
是一个在浏览器和DOM的DOM中呈现Window的属性。这就是你获得例外的原因。
以适当的顺序应用属性(在您的案例中centerInPage()
之后ShowModalMask()
)以避免此类异常。
答案 1 :(得分:0)
我正在使用smartgwt 2.4:如果我在一个方法中使用一个调用它的按钮来尝试你的代码,我会收到一个错误,表明我无法用setModalMask(IllegalStateException - this property cannot be changed after the component has been created
)修改它。
在实例化之后移动此调用之后它正在工作:
Window summaryWindow = new Window();
summaryWindow.setShowModalMask(true);
我真的不明白,但请告诉我它是否也适合你