更改NatTable单元格选择颜色

时间:2016-11-14 15:53:59

标签: java nattable

当我点击一行时,整个行颜色会按预期更改。但是,鼠标所在的单元格会变为与行的其余部分不同的颜色。我试图阻止单元格变为与行的其余部分不同的颜色。

我试图弄清楚细胞选择颜色的设置位置以及如何去除它(让细胞选择使用细胞当前的背景颜色)。

我尝试修改CellConfigAttribute或通过以下方式取消注册,但未成功:

getNatTable().getConfigRegistry().
  unregisterConfigAttribute(CellConfigAttributes.CELL_STYLE); 

但没有运气。我不知道如何按顺序遍历所有样式并查看它的生成位置。我本来希望看到类似于的现有方法:

List<ConfigAttribute<IStyle>> list = getNatTable().getConfigRegistry().
  getConfigAttributesInOrder();

不幸的是,我所看到的都是这样的,我觉得这对我的情况没有用处:

List<String> strings = getNatTable().getConfigRegistry().
  getDisplayModeOrdering().getDisplayModeOrdering("SELECT");

我已经阅读了一些有一些一般性建议的文档,但没有看到显示如何执行此操作的明确代码示例。那么,show我可以确定细胞被修改的位置以及如何预防它?

我用于完整行选择的代码是:

public void foo() {
    final SelectionLayer selectionLayer = glazedListsGridLayer.
      getBodyLayerStack().getSelectionLayer();
    final RowOnlySelectionConfiguration<T> selectionConfig = 
      new RowOnlySelectionConfiguration<>();
    selectionLayer.addConfiguration(selectionConfig);
    getNatTable().addConfiguration(new RowOnlySelectionBindings());
}

1 个答案:

答案 0 :(得分:1)

您正在谈论选择锚点。您唯一需要做的就是为DisplayMode.SELECT注册相同的样式,并标记您只注册DisplayMode.SELECT的SelectionStyleLabels.SELECTION_ANCHOR_STYLE。不同的样式在DefaultSelectionStyleConfiguration

中注册