我写了这样一个小部件:
public class GroupLbl extends Composite implements ClickHandler, MouseOutHandler {
private Label lbl;
private GroupLblHandler lblHandler = null;
private HorizontalPanel hp;
public void onClick(ClickEvent event) {
hp.setStyleName("background-GroupLbl");
if (event.getSource().equals(folder) || event.getSource().equals(lbl)) {
lblHandler.onGroupLabelSelect(this);
}
}
public GroupLbl(String title, GroupLblHandler handler) {
hp.add(lbl);
lblHandler = handler;
if (handler != null) {
lbl.addClickHandler(this);
}
initWidget(hp);
}
@Override
public Widget getWidget() {
return hp;
}
public void onMouseOut(MouseOutEvent event) {
hp.removeStyleName("background-GroupLbl");
}
} 我在我的表单中使用这个小部件,当用户点击其中一个小部件时,应该为此分配样式名称,当用户点击其他时,应该为其分配样式名称,并且第一个shoud删除样式名称我实现了mouseouthandler但是它不起作用,样式将bgcolor设置为hp,以便用户了解他/她选择了哪个grouplbl。我应该做什么(这是我的代码的一部分)? tnx,请原谅我的英语不好!!!
答案 0 :(得分:4)
使用您希望拥有的bg颜色定义带有后缀-background
的其他CSS样式。
而不是setStyleName
使用addStyleDependentName( "background" )
和removeStyleDependentName( "background" )
来添加/删除-background样式。