Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从Vaadin TreeGrid/Grid的行和单元格中获取应用的背景色?_Java_Vaadin_Vaadin8_Vaadin Grid - Fatal编程技术网

Java 如何从Vaadin TreeGrid/Grid的行和单元格中获取应用的背景色?

Java 如何从Vaadin TreeGrid/Grid的行和单元格中获取应用的背景色?,java,vaadin,vaadin8,vaadin-grid,Java,Vaadin,Vaadin8,Vaadin Grid,我使用的是Vaadin 8.6.4版Java,我有一个数据集,它在TreeGrid上表示。直到现在,我还无法获得应用于任何行或任何单元格的样式名。有什么方法或技巧可以获得vaadin中单元格/行的实际样式?样式列表将像下面的代码一样添加 我还想通过重写Grid类的intern方法,在创建网格之前为所有单元格设置一个Id。在那之后,我应该能够在客户端启动一个Javascript函数,根据单元格的id搜索单元格的样式。但是所有这些都太复杂了,所以我没有成功 final String reservat

我使用的是Vaadin 8.6.4版Java,我有一个数据集,它在TreeGrid上表示。直到现在,我还无法获得应用于任何行或任何单元格的样式名。有什么方法或技巧可以获得vaadin中单元格/行的实际样式?样式列表将像下面的代码一样添加

我还想通过重写Grid类的intern方法,在创建网格之前为所有单元格设置一个Id。在那之后,我应该能够在客户端启动一个Javascript函数,根据单元格的id搜索单元格的样式。但是所有这些都太复杂了,所以我没有成功

final String reservationColor  = "background-color: "green" !important;";   
final String STYLENAME_RESERVED = "reserved";

Styles styles = Page.getCurrent().getStyles();
styles.add(".v-treegrid-cell." + STYLENAME_RESERVED +"{"+ reservationColor + "}");

TreeGrid是直接扩展网格的,所以您应该能够使用类似的方法来设置TreeGrid的样式

例如,更改单元格背景颜色的首选方法是使用样式生成器


这里已经有了一个问题和答案:

谢谢你的回答,但我不想为单元格设置背景色。我想获取该单元格的样式。我建议在服务器端维护有关该单元格的信息,并在样式生成器中使用该信息来定义要使用的样式名。那么您就不需要直接检查样式名了。当然可以。问题是我想创建一个树状体的xlsx表示,有些行有重要的颜色。有一种方法可以知道哪种样式/背景颜色有网格的任何单元格?这种情况发生在服务器端。问:有一种方法可以知道哪种样式/背景颜色有网格单元?答:这方面没有服务器端API。这就是为什么我提出了另一种方法来设置背景颜色,并在数据模型中维护这些信息。我认为从软件架构的角度来看,这也是更正确的方法。