Jewelsea提供了一个很好的例子,可以在GitHub突出显示表格行和单个单元格。但是,我对与之密切相关的事情感到非常困难。
使用他的示例,当我在“Will Pay Up”列中为单个单元格执行updateItem代码时,我还想突出显示相应的名称(可以在同一位置找到) TableRow)与将支付列中的单元格颜色相同。在我实际开发的代码中,我确保始终在第一列中找到该名称。
以下是他的updateItem代码中的几行(我希望这没关系):
// update the item and set a custom style if necessary
if (item != null) {
setText(item.toString());
this.getStyleClass().add(item ? "willPayCell" : "wontPayCell");
this.getTableRow().getStyleClass().add(item ? "willPayRow" : "wontPayRow");
}
我们可以突出显示当前单元格(this.getStyleClass())或整行(this.getTableRow())但我无法找到访问当前行中另一个单元格的方法。
答案 0 :(得分:0)
将单元格的样式类设置为常量,并根据项目的值设置行的样式类:
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-background: /* color for cells other than willPayCell in willPayRow */;
}
.table-row-cell.wontPayRow .table-cell {
-fx-background: /* color for cells other than willPayCell in wontPayRow */;
}
.table-row-cell.willPayRow .willPayCell {
-fx-background: /* color for willPayCell in willPayRow */;
}
.table-row-cell.wontPayRow .willPayCell {
-fx-background: /* color for willPayCell in wontPayRow */;
}