高亮显示JavaFX表格行中的多个单元格

高亮显示JavaFX表格行中的多个单元格,javafx,tableview,tablerow,Javafx,Tableview,Tablerow,Jewelsea提供了一个突出显示表行和单个单元格的好例子。然而,我在一些密切相关的事情上遇到了很大的困难 以下是屏幕截图: 使用他的示例,当我为“Will Pay Up”列中的单个单元格执行updateItem代码时,我还希望突出显示与Will Pay Up列中的单元格颜色相同的相应名称(可在同一表格行中找到)。在我实际开发的代码中,我已确保名称始终位于第一列 以下是他为updateItem编写的代码中的几行(我希望这没问题): 我们可以突出显示当前单元格(this.getStyleClas

Jewelsea提供了一个突出显示表行和单个单元格的好例子。然而,我在一些密切相关的事情上遇到了很大的困难

以下是屏幕截图:

使用他的示例,当我为“Will Pay Up”列中的单个单元格执行updateItem代码时,我还希望突出显示与Will Pay Up列中的单元格颜色相同的相应名称(可在同一表格行中找到)。在我实际开发的代码中,我已确保名称始终位于第一列

以下是他为updateItem编写的代码中的几行(我希望这没问题):


我们可以突出显示当前单元格(this.getStyleClass())或整行(this.getTableRow()),但无法找到访问当前行中另一个单元格的方法。

将单元格的样式类设置为常量,并根据项目的值设置行的样式类:

if (item != null) {
    setText(item.toString());
    if (! this.getStyleClass().contains("willPayCell")) {
        this.getStyleClass().add("willPayCell");
    }
    this.getTableRow().getStyleClass().removeAll("willPayRow", "wontPayRow");
    this.getTableRow().getStyleClass().add(item ? "willPayRow" : "wontPayRow");
}
然后您可以使用CSS来确定不同单元格的颜色:

.table-row-cell.willPayRow.table cell{
-fx背景:/*除willPayRow中的willPayCell以外的单元格的颜色*;
}
.table-row-cell.wontPayRow.table单元格{
-fx背景:/*wontPayRow中除willPayCell以外的单元格的颜色*;
}
.table-row-cell.willPayRow.willPayCell{
-fx背景:/*willPayRow中willPayCell的颜色*/;
}
.table-row-cell.wontPayRow.willPayCell{
-fx背景:/*wontPayRow中willPayCell的颜色*/;
}

我花了几分钟来理解它的功能,但它工作得非常完美!我真的很感谢你的帮助。我应该指出,按照James的回答,我对Jewelsea的代码做了如下更改:我对reaper.css进行了css更改,并在makeStringColumn方法中添加了
if(item!=null){if(columnName.contains(“Name”){this.getStyleClass().add(“willPayCell”);}setText(item);}
if (item != null) {
    setText(item.toString());
    if (! this.getStyleClass().contains("willPayCell")) {
        this.getStyleClass().add("willPayCell");
    }
    this.getTableRow().getStyleClass().removeAll("willPayRow", "wontPayRow");
    this.getTableRow().getStyleClass().add(item ? "willPayRow" : "wontPayRow");
}