当前位置: 首页 > 知识库问答 >
问题:

在可贴附细胞中显示图像

任绪
2023-03-14
public class MyConfigLabelAccumulator implements IConfigLabelAccumulator {
  @Override
  public void accumulateConfigLabels(final LabelStack configLabels, final int columnPosition, final int rowPosition) {
    if (((rowPosition + columnPosition) % 2) == 0) {
      configLabels.addLabel("myLabel");
    }
  }
}

public class MyStyleConfiguration extends DefaultNatTableStyleConfiguration {
  @Override
  public void configureRegistry(final IConfigRegistry configRegistry) {
    super.configureRegistry(configRegistry);
    final Style style = new Style();
    style.setAttributeValue(CellStyleAttributes.IMAGE, GUIHelper.getImage("plus"));
    style.setAttributeValue(CellStyleAttributes.BACKGROUND_COLOR, GUIHelper.COLOR_YELLOW);
    configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_STYLE, style, DisplayMode.NORMAL, "myLabel");
    configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_PAINTER, new CellPainterDecorator(new TextPainter(), CellEdgeEnum.RIGHT, new ImagePainter()), DisplayMode.NORMAL);
  }
}   
dataLayer.setConfigLabelAccumulator(new MyConfigLabelAccumulator());
...
natTable.addConfiguration(new MyStyleConfiguration());
...
natTable.configure();   
natTable.setTheme(new ModernNatTableThemeConfiguration());

UPD:我已经用itheemeExtension解决了这个问题,但可能还有其他解决方案?

共有1个答案

夹谷英杰
2023-03-14

主题配置旨在覆盖现有样式。这也允许在运行时切换主题。

IThemeExtensions是使用条件样式扩展现有主题的方法。当然,您也可以通过扩展existimg主题来创建自己的主题,但这样您的自定义不能与其他主题一起使用。

上面代码中的问题似乎是,您注册的是一般的画家,而不仅仅是您的“mylabel”。那是有意的吗?因为这将重写默认的cell painter配置,然后该配置再次被主题重写。如果它应该只注册为“MyLabel”设置主题不应该有效果。

 类似资料:
  • 不确定这是否是唯一可能的方法。如果你们中有人遇到这种情况,你能分享一些想法吗? PS:这篇文章发布在Eclipse论坛上,网址是https://www.Eclipse.org/forums/index.php/m/1782700/#msg_1782700

  • 问题内容: 在1.5.5.3123版本的机盖上运行 Folium版本:0.1.2,内部版本:1 下面的代码; 退货 但没有别的。 如何在ipython笔记本中显示地图? 问题答案: 我发现iPythonNotebooks中有关Folium的本教程很有帮助。您创建的原始Folium实例不足以让iPython显示地图- 您需要做更多的工作才能获得一些iPython可以渲染的HTML。 要在iPytho

  • 我已经创建了一个cytoscape.js图。允许用户在任何节点上单击和缩放/向下钻取,以查看所有邻近的节点和边缘。我需要添加一个重置按钮,这将恢复图形到它的原始位置,即当页面第一次加载。我尝试使用了几个不同的函数,如cy.load、forcerender、cy.destroy和recreate graph。唯一剩下的就是从dom中清除整个对象并添加另一个cytoscape图形对象。我想知道是否有一

  • 我的项目涉及一个带有自定义表格模型的JTable。因为我希望用户能够修改表中的每个单元格,所以我选择让我的自定义TableModel(CSVModel)扩展DefaultTableModel。然而,由于某些原因,当我试图编辑表中的单元格时,CSVModel会抛出一个异常。我得到的唯一提示来自堆栈跟踪的最后一行: java线程“AWT-EventQueue-0”中出现异常。lang.ArrayInd

  • 在我的页面(本地主机)中, 只显示一个图像图标,当我右键单击时,我可以在一个新窗口中看到它。 我的错误是什么?

  • 问题内容: 我需要一些帮助。所以我有这样的事情 所以基本上这个程序将(ejemplo是西班牙语的例子,只是文件名)加载到(a )中,然后检查特定列中的重复值。它将删除重复项并再次保存文件。该部分正常工作。问题在于,除了删除重复项之外,我还需要用不同的颜色(例如黄色)突出显示包含它们的单元格。 问题答案: 您可以创建一个函数来突出显示… 然后将突出显示功能应用于数据框…