1

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

2 回答 2

2

你得到的例外是有效的。在任何与 GWT 相关的技术中,您都会发现许多 API 功能来设置 GWT 小部件的属性。例如,对于Window您拥有的小部件setWidthsetHeight,centerInPage等...

现在,其中一些属性必须在小部件在浏览器的 DOM 中呈现之前应用,其中一些必须在小部件在浏览器的 DOM 中呈现之后应用。

ShowModalMask()是您只能在小部件呈现之前设置的属性。 centerInPage()是在浏览器的 DOM 中呈现 Window 的属性,这就是您收到异常的原因。

以正确的顺序应用属性(centerInPage()ShowModalMask()您的情况下)以避免这种异常。

于 2013-02-11T07:16:40.397 回答
0

我正在使用 smartgwt 2.4:如果我尝试使用包含在方法中的按钮调用您的代码,我会收到一个错误,表明我无法使用 setModalMask( IllegalStateException - this property cannot be changed after the component has been created) 对其进行修改。在实例化之后移动此调用后,它正在工作:

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

我不太明白,但让我知道它是否也适合你

于 2013-02-09T14:16:31.257 回答