Gwt 在运行时更改ListBox css属性

Gwt 在运行时更改ListBox css属性,gwt,Gwt,我有一个列表框: ListBox lb = new ListBox(); 这是我对列表框的默认css: .gwt-ListBox { background: transparent; padding: 5px; border: 1px solid #222; color: #555; text-shadow:1px 1px 0px #ffffff; text-decoration:none; font-family:arial; height: 40px;

我有一个列表框:

ListBox lb = new ListBox();
这是我对列表框的默认css:

.gwt-ListBox {
  background: transparent;
  padding: 5px;
  border: 1px solid #222;
  color: #555;
  text-shadow:1px 1px 0px #ffffff;
  text-decoration:none;
  font-family:arial;
  height: 40px;
  font-size:16px;
  font-weight:bold;
  cursor: pointer;
}
我想在运行时修改背景:

lb.getElement().getStyle().setBackgroundColor("#aaa");
这似乎删除了所有的样式,我得到了一个非常丑陋的列表框。我做错了什么


谢谢

一种更有效、更易于维护的方法是使用CSS客户端包,请参见:

将要更改的样式部分放在CSS资源中,并应用额外的样式。要让您了解如何做到这一点,请执行以下操作:

MyWidget.css:

.backgroundA {
  background: #aaa;
}
MyWidget.java:

interface MyWidgetCssResource extends CssResource {
  String backgroundA();
}

MyWidgetCssResource resource;

lb.getElement().addStyleNames(resource.backgroundA());