Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 隐藏行号时,“单元格”下拉列表不起作用_Java_Nattable - Fatal编程技术网

Java 隐藏行号时,“单元格”下拉列表不起作用

Java 隐藏行号时,“单元格”下拉列表不起作用,java,nattable,Java,Nattable,我有一个表可以隐藏他的行号。现在,当我隐藏行号时,它不会显示单元格中的下拉列表 我使用此代码隐藏行号: if (showRowNumbers) { compositeGridLayer = new GridLayer(bodyLayer, finalHeaderRow, rowHeaderLayer, cornerLayer); } else { compositeGridLayer = new CompositeLayer(1, 2); compos

我有一个表可以隐藏他的行号。现在,当我隐藏行号时,它不会显示单元格中的下拉列表

我使用此代码隐藏行号:

if (showRowNumbers) {
      compositeGridLayer = new GridLayer(bodyLayer, finalHeaderRow, rowHeaderLayer, cornerLayer);
    } else {
      compositeGridLayer = new CompositeLayer(1, 2);
      compositeGridLayer.setChildLayer(GridRegion.COLUMN_HEADER, columnHeaderLayer, 0, 0);
      compositeGridLayer.setChildLayer(GridRegion.BODY, bodyLayer, 0, 1);
      compositeGridLayer.setChildLayer(GridRegion.COLUMN_HEADER, finalHeaderRow, 0, 0);
    }
为了将下拉列表添加到单元格中,我们使用以下方法注册它:

ComboBoxCellEditor comboBoxCellEditor = new ComboBoxCellEditor(phases, -1);
comboBoxCellEditor.setMultiselect(false);
comboBoxCellEditor.setUseCheckbox(false);
comboBoxCellEditor.setFreeEdit(false);

configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_PAINTER, new ComboBoxPainter(),
  DisplayMode.NORMAL, "phaseDropDown");

comboBoxCellEditor.setIconImage(GUIHelper.getImage("plus"));
configRegistry.registerConfigAttribute(EditConfigAttributes.CELL_EDITOR, comboBoxCellEditor, DisplayMode.EDIT,
  "phaseDropDown");

configRegistry.registerConfigAttribute(CellConfigAttributes.DISPLAY_CONVERTER, new DefaultDisplayConverter() {

  @Override
  public Object canonicalToDisplayValue(Object canonicalValue) {

    return super.canonicalToDisplayValue(canonicalValue);
  }
}, DisplayMode.NORMAL, "phaseDropDown");

如何在不删除表中的下拉列表的情况下隐藏行号?

不确定“隐藏行号”是什么意思。隐藏意味着您希望动态地执行此操作。而且您正在展示的方法不会是动态的

如果您的意思是要提供两种不同的组合,一种有行号,另一种没有行号,那么这种方法是正确的。你用不同的构图。我不明白的是,为什么要用不同的层设置两次列标题

下一个问题,“不显示下拉列表”是什么意思?你没有看到小三角形吗?或者组合框没有打开?我猜你的意思是组合框不会在单击时打开。我想原因是您忘记在新创建的
CompositeLayer
上注册必要的编辑配置。
GridLayer
是使用默认配置创建的。在
合成器层上
不设置任何配置。因此,实际上,即使是打印、导出和替换行颜色也无法工作,因为它们根本没有配置


您需要在
CompositeLayer
上注册
DefaultEditConfiguration
DefaultEditBindings
。我们的报告对此进行了解释。我相信我们也有一些例子涉及非网格合成中的编辑。

在删除行号时将DefaultEditConfiguration和DefaultEditBindings注册到CompositeLayer是有效的。tnx。