【问题标题】:Changing the NatTable cell selection color更改 NatTable 单元格选择颜色
【发布时间】:2016-11-15 01:25:49
【问题描述】:

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

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

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

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

但没有运气。我不知道如何按顺序迭代所有样式并查看它是从哪里生成的。我希望看到类似于以下的现有方法:

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

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

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

我已经阅读了包含一些一般建议的文档,但没有看到显示如何执行此操作的明确代码示例。那么,显示我是否确定单元格被修改的位置以及如何防止它?

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

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

【问题讨论】:

    标签: java nattable


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-01-30
      • 2011-04-27
      • 2015-10-09
      • 2017-03-23
      • 2017-08-07
      • 2020-02-05
      • 2012-07-09
      • 2011-01-01
      相关资源
      最近更新 更多