我有一个GWT TextButton。应用于全局css文件的以下css样式不起作用:

.gwt-TextButton {
   color: red !important;
}


为什么?更改所有TextButton小部件的样式应使用哪些正确样式?

最佳答案

TextButton是单元格支持的小部件,基于appearance模式。它使用TextButtonCell呈现内容,并使用CellWidget<T>对其进行包装。

您要查找的全局css是gwt-ButtonCellBase,但是由于在ClientBundle中使用了它而被混淆了,因此您需要扩展ButtonCellBase.DefaultAppearance.Resources,以提供自己的Style。就像任何其他基于单元格的小部件一样。然后,您需要使用正确的构造函数(TextButton(Appearance appearance, String text))。示例代码如下。

定义资源外观扩展名(为清楚起见,全引号):

public interface MyResources extends ButtonCellBase.DefaultAppearance.Resources {
  @Override
  @Source(value = {ButtonCellBase.DefaultAppearance.Style.DEFAULT_CSS, "custom.css"})
  ButtonCellBase.DefaultAppearance.Style buttonCellBaseStyle();
}


custom.css内,覆盖所需的ButtonCellBase.css,然后注入所有内容:

MyResources customResources = GWT.create(MyResources.class);
TextButtonCell.Appearance customAppearance = new TextButtonCell.DefaultAppearance(customResources);
TextButton button = new TextButton(customAppearance, "Text");


您可以很好地完成上述所有操作一次,并始终以相同的外观实例化任何新的TextButton

关于java - 如何设置TextButton的样式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16345602/

10-10 23:14