GWT弹出式设置已启用(true)don';行不通

GWT弹出式设置已启用(true)don';行不通,gwt,popup,Gwt,Popup,我正在创建一个带有相同文本的弹出面板,我想禁用背景并将其置为灰色。我读过关于setGlassEnabled的文章,但它不起作用,有人能帮忙吗?ps.弹出窗口已正确显示 PopupPanel popup=新的PopupPanel(信息类型); popup.center(); popup.setGlassEnabled(真); popup.show(); 玻璃面板没有默认样式,因此默认为透明。如果希望背景灰显,则需要向玻璃面板添加一些CSS样式 另外,setGlassEnabled仅在下次显示弹出窗

我正在创建一个带有相同文本的弹出面板,我想禁用背景并将其置为灰色。我读过关于setGlassEnabled的文章,但它不起作用,有人能帮忙吗?ps.弹出窗口已正确显示

PopupPanel popup=新的PopupPanel(信息类型);
popup.center();
popup.setGlassEnabled(真);
popup.show();

玻璃面板没有默认样式,因此默认为透明。如果希望背景灰显,则需要向玻璃面板添加一些CSS样式


另外,
setGlassEnabled
仅在下次显示弹出窗口时启用玻璃面板,在您的情况下,当您调用
show
时,弹出窗口已经显示出来(因为之前调用了
center
),因此它是一个无操作,并且玻璃面板实际上没有使用。在调用
setGlassEnabled
之后将调用移动到
center
和/或在调用
setGlassEnabled
之前将调用移动到
hide

将以下代码放在对话框构造函数的顶部似乎可以解决这个问题

setGlassEnabled(true);

Style glassStyle = getGlassElement().getStyle();
glassStyle.setProperty("width", "100%");
glassStyle.setProperty("height", "100%");
glassStyle.setProperty("backgroundColor", "#000");
glassStyle.setProperty("opacity", "0.45");
glassStyle.setProperty("mozOpacity", "0.45");
glassStyle.setProperty("filter", " alpha(opacity=45)");

setGlassEnabled()的javadoc说“背景将被半透明窗格阻挡”,这有点误导。事实上,它所要做的就是应用一个全屏div,默认样式名为“GWTPopuppanelglass”(至少从GWT2.4开始)。比如说,如果您的项目
有一个主题,如
com.google.gwt.user.theme.clean.clean
,那么clean.css会提供您期望的半透明窗格:

.gwt-PopupPanelGlass {
    background-color: #000;
    opacity: 0.3;
    filter: alpha(opacity=30);
} 

否则,如前所述,您将不得不自己滚动。

如果没有css,它不会禁用背景吗?