我写了一个这样的小部件:
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");
}
} 我在我的表单中使用这个小部件,当用户点击小部件的一个实例时,样式名称应该分配给这个,当用户点击其他时,样式名称应该分配给那个,第一个应该删除我实现的样式名称 mouseouthandler 但是它不起作用,样式将 bgcolor 设置为 hp,以便用户了解他/她选择了哪个组。我应该做什么(这是我的代码的一部分)? tnx,请原谅我的英语不好!!!
最佳答案
定义一个附加的 CSS 样式,后缀为 -background
,并带有您希望的背景颜色。
代替 setStyleName
使用 addStyleDependentName( "background")
和 removeStyleDependentName( "background")
添加/删除背景样式。
关于gwt - 在 gwt 中向小部件添加样式和删除样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3138621/