我创建了一个带有 RowSelectionModel 和 RowSelectionProvider 的 NatTable:
dataProvider = new ListDataProvider<>(rowData, columnAccessor);
bodyDataLayer = new DataLayer(dataProvider);
glazedListEventsLayer = new GlazedListsEventLayer<>(bodyDataLayer, rowData);
columnReorderLayer = new ColumnReorderLayer(glazedListEventsLayer);
columnHideShowLayer = new ColumnHideShowLayer(columnReorderLayer);
selectionLayer = new SelectionLayer(columnHideShowLayer);
ViewportLayer viewportLayer = new ViewportLayer(selectionLayer);
selectionProvider = new RowSelectionProvider<>(selectionLayer, dataProvider, true);
selectionLayer.setSelectionModel(new RowSelectionModel<>(selectionLayer, dataProvider, idAccessor, false));
基本上,桌子做我想做的事。只有一个例外:
该表如下所示:
正如预期的那样,该表显示选中的行 (1)。它还突出显示了实际选择的单元格 (2),这非常好。但是,它将整个表格列标题呈现为选中状态 (3)。我不想要那个。我希望根本不突出显示标题单元格,或者(甚至更好:)我只想突出显示光标单元格(2)的列标题单元格。
我认为可能有一个配置标签附加到列标题单元格导致突出显示(所以我可以更改这种标签的样式以摆脱突出显示),但 COLUMN_HEADER 是唯一的配置标签,我调试时可以看到。
所以,我现在有点卡住了。是什么导致标题单元格突出显示以及如何更改此行为?是否可以仅突出显示光标单元格的标题(与所选行的光标单元格 (2) 一样)?