gpt4 book ai didi

java - 在 NatTable 单元格中显示图像

转载 作者:行者123 更新时间:2023-11-30 03:05:46 25 4
gpt4 key购买 nike

我对在 NatTable 单元格中使用图像有疑问。我的 ConfigLabelAccumulator 和配置如下所示

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:我已经使用 IThemeExtension 解决了这个问题,但可能还有其他解决方案吗?

最佳答案

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

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

上面代码中的问题似乎是您正在一般注册画家,而不仅仅是为您的“myLabel”注册。这是故意的吗?因为这会覆盖默认的单元格绘制器配置,然后该配置又会被主题覆盖。如果它只应注册为“myLabel”设置,则主题不应产生效果。

关于java - 在 NatTable 单元格中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34791483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com