2011-07-16 40 views
7

我創建一個彈出面板白色相同的文本,我想禁用背景並使其灰色。我讀了關於setGlassEnabled但它不起作用,有人可以幫忙嗎? PS。彈出窗口可以正確顯示。GWT彈出setGlassEnabled(true)不起作用

PopupPanel popup = new PopupPanel(infoType); 
popup.center(); 
popup.setGlassEnabled(true); 
popup.show(); 

回答

8

玻璃面板沒有默認樣式,所以默認情況下它是透明的。如果您希望背景變灰,則需要在玻璃面板上添加一些CSS樣式。

此外,setGlassEnabled只允許彈出窗口顯示爲下一個時的玻璃面板,並在你的情況,當你調用show(因爲以前調用center)的彈出已經表現出,所以這是一個沒有操作和玻璃面板實際上沒有使用。在setGlassEnabled之前致電setGlassEnabled和/或致電hide撥打center

+0

和沒有CSS它不會禁用背景? – Erick

+0

用更多信息更新了答案。 –

+0

tnks我swappe與顯示中心的工作位置工作 – Erick

2

將下面的代碼放在對話框構造函數的頂部,似乎爲我解決了這個問題。

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)"); 
0

爲setGlassEnabled的Javadoc()是表示,「背景被阻止與半透明窗格」有點誤導。實際上,它所要做的就是應用一個默認樣式名稱爲「gwt-PopupPanelGlass」的全屏div(至少在GWT 2.4中)。比如說,如果你的項目<inherits>一個主題,如com.google.gwt.user.theme.clean.Clean,然後clean.css提供的半透明面板中你期待:

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

否則,如前所述,你必須推出自己的。