我正在尝试根据行项的十六进制值更改表格中行的颜色。我基本上试图生成css,类似于生成像这样的cssLayout
CssLayout content = new CssLayout( ) {
@Override
public String getCss( Component c ) {
return "background: " + colorCode + ";";
}
};
这是我现在使用的代码
table.setCellStyleGenerator(
new Table.CellStyleGenerator( ) {
public String getStyle( Object itemId, Object propertyId ) {
return "green";
}
} );
但它只适用于设置样式名称,因此我必须拥有数百万个样式名称,以容纳用户想要的颜色的所有可能的十六进制值。
答案 0 :(得分:2)
您可以使用CSSInject附加组件即时添加所需的样式名称。
请参阅https://vaadin.com/directory#addon/cssinject
String color = "#CCDDFF";
CSSInject css = new CSSInject(getUI());
css.setStyles("."+color+" { background-color: "+color+"; }");
答案 1 :(得分:0)
在现有的CSS文件中,您可以为“green”样式定义颜色更改为background-color: #00ff00;
,并根据您的约束返回绿色样式。看看color changes。