Java 如何将图像与表格单元(SWT表格)RAP平台的中心对齐

Java 如何将图像与表格单元(SWT表格)RAP平台的中心对齐,java,eclipse,swt,rcp,eclipse-rap,Java,Eclipse,Swt,Rcp,Eclipse Rap,我为这个问题找到了一些解决方案,但它们仅适用于RCP平台。我正在使用RAP平台,找不到解决方案。要自定义对齐图像,RAP中有两种选择: 标记 在相应地准备好表之后,您可以使用HTML的子集和表项的文本 Table Table=新表(父表,SWT.NONE); table.setData(RWT.MARKUP_已启用,Boolean.TRUE); 表.setData(RWT.CUSTOM_ITEM_HEIGHT,Integer.valueOf(80)); TableItem项目=新的TableIt

我为这个问题找到了一些解决方案,但它们仅适用于RCP平台。我正在使用RAP平台,找不到解决方案。

要自定义对齐图像,RAP中有两种选择:

标记

在相应地准备好表之后,您可以使用HTML的子集和表项的文本

Table Table=新表(父表,SWT.NONE);
table.setData(RWT.MARKUP_已启用,Boolean.TRUE);
表.setData(RWT.CUSTOM_ITEM_HEIGHT,Integer.valueOf(80));
TableItem项目=新的TableItem(表,SWT.NONE);
字符串imageUrl=RWT.getRequest().getContextPath()+“/”+registerImage(“foo.png”);
项目.setText(“”);
注册图像的代码(此处假设图像位于类路径上)应如下所示:

String registerImage(String resourceName)引发IOException{
IResourceManager resourceManager=RWT.getResourceManager();
如果(!resourceManager.isRegistered(resourceName)){
InputStream InputStream=CLASSLOADER.getResourceAsStream(resourceName);
试一试{
register(resourceName,inputStream);
}最后{
inputStream.close();
}
}
返回resourceManager.getLocation(resourceName);
}
更多详细信息可在此处找到:

行模板

使用行模板,可以替换表的默认列布局,并且可以更改项目及其单元格的布局方式

要更改图像的位置,请使用
item.setImage(…)
像往常一样设置图像,然后创建一个模板,根据需要定位图像。 最后,告诉表使用带有
table.setData(…)
的模板

Template Template=新模板();
ImageCell ImageCell=新的ImageCell(模板);
imageCell.setBindingIndex(0);//从列0绑定到图像
设置顶部(4)、设置左侧(4)、设置宽度(48)、设置高度(48);
表.setData(RWT.ROW_模板,模板);

此处有更多信息:

请参阅@flafoux的建议,该建议在RAP中不起作用,因为它不支持所有者绘制的表项。