我想屏蔽一个小部件。所以我用一个弹出式面板来做同样的事情
public class MyMask extends PopupPanel
{
public MyMask ()
{
super();
}
public void showAbsolute( UIObject uiObject )
{
show();
setPopupPosition( uiObject.getAbsoluteLeft(), uiObject.getAbsoluteTop() );
}
}
我的面具类看起来像这样
public final class Mask
{
private static MyMask mask = new MyMask();
private static UIObject object;
private Mask()
{
}
public static void enable( UIObject uiObject )
{
VerticalPanel vp = new VerticalPanel();
vp.setVerticalAlignment( HasVerticalAlignment.ALIGN_MIDDLE );
vp.setStyleName( "mask" );
vp.setHeight( uiObject.getOffsetHeight() + Unit.PX.getType() );
vp.setWidth( uiObject.getOffsetWidth() + Unit.PX.getType() );
mask.add( vp );
mask.showAbsolute( uiObject );
}
public static void disable()
{
mask.hide();
}
}
但是通过致电
Mask.enable(widget)
弹出式面板并没有完全出现在小部件上,而是出现在小部件下方并且稍微向左移动。我希望它完全出现在小部件上。知道如何去做吗?
目前正在使用gwt 2.4.0
答案 0 :(得分:0)
我首先建议不要使用这种方法,因为它不是标准的GUI实践,所有输入小部件都可以让你在它们上面调用setEnabled(false)
以防止用户输入。
答案 1 :(得分:0)
解决方案很简单......不需要弹出面板。只需更改禁用状态并在掩码上将背景颜色变为灰色并启用它,在取消屏蔽时重新应用样式