SmartGWT模态窗口

时间:2013-02-08 12:08:13

标签: java gwt smartgwt

我有模态窗口的问题。我将这两种方法称为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();

2 个答案:

答案 0 :(得分:2)

您获得的例外有效。在任何GWT相关技术中,您将找到许多API功能来设置GWT小部件的属性。例如,对于Window小部件,setWidthsetHeightcenterInPage等...

现在,必须在浏览器的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);

我真的不明白,但请告诉我它是否也适合你