我有一个5列的表查看器。在第一列中,我检查了一些条件并添加了一个图像,其余的列将有文本,但当我尝试添加图像,然后用文本添加其余的列时,第二列的文本就位于第一列中的图像旁边。下面是我的示例代码片段:
TableItem item = new TableItem(table, SWT.NONE);
if(condition) {
item.setImage(image);
}
else {
item.setImage(image);
}
item.setText(new String[]{"street", "city","state","Zip Code"});
问题是字符串“street”位于第一列中图像的右侧,但我希望字符串“street”位于第二列中,其余字符串位于后续列中。我做错了什么?如何从第二列添加表项?
不太清楚。如果只想在第一列中显示一个图像,则只需提供一个空字符串:
item.setText(new String[]{"", "street", "city","state","Zip Code"});
但如果不利用ContentProvider和LabelProvider的优点,使用jface是不值得的。所以在做类似的事情之前,你应该阅读一些jface教程。
例子:
TableViewer tableViewer = new TableViewer(container, SWT.BORDER | SWT.FULL_SELECTION);
tableViewer.setContentProvider(ArrayContentProvider.getInstance());
TableViewerColumn tableViewerColumnImg = new TableViewerColumn(tableViewer, SWT.NONE);
tableViewerColumnImg.setLabelProvider(new ColumnLabelProvider()
{
@Override
public Image getImage(Object element)
{
Person p = (Person) element;
return p.getImage();
}
});
TableColumn tblclmnImg = tableViewerColumnImg.getColumn();
tblclmnImg.setWidth(100);
tblclmnImg.setText("Img");
TableViewerColumn tableViewerColumnStreet = new TableViewerColumn(tableViewer, SWT.NONE);
tableViewerColumnStreet.setLabelProvider(new ColumnLabelProvider()
{
@Override
public String getText(Object element)
{
Person p = (Person) element;
return p.getStreet();
}
});
TableColumn tblclmnStreet = tableViewerColumnStreet.getColumn();
tblclmnStreet.setWidth(100);
tblclmnStreet.setText("Street");
tableViewer.setInput(//set an array of persons here
);
表中的每一列都可以有图像和文本。
正在调用项目。设置图像(image)为第一列设置图像。
调用item.setText(String[])
设置从第一列开始的每列的文本。所以你的“街道”就在图像旁边。
如果不希望在第一列中显示文本,请将该列的文本设置为空白:
item.setText(new String[]{"", "street", "city", "state", "Zip Code"});
更新:
还可以使用设置单个列的文本
item.setText(column, text);
如果您使用的是TableViewer
,则不应使用TableItem
,而应使用标签提供程序和内容提供程序。
在一个工具中,我正在做,我有一个表格,我像这样添加: 效果很好,但现在,我想添加一个JFace表查看器,但是上面的文档似乎只关注表布局,而不是表。我以为,桌面视图会被添加到表中吗?
当我尝试创建复合表列时出错?
在eclipse RCP应用程序中,我有一个具有VIRTUAL样式的桌面浏览器,用于显示大量数据。 我正在使用自定义内容提供程序实现IStructuredContentProvider 我需要通过所有列对表数据进行排序。 所有列的排序都非常好。但是,我在表上有一个选择事件,并且有一些基于表选择的操作。 假设以下项目按顺序显示在视图上 A B C D E 单击特定列后,视图按下面提到的顺序排序 E
嗨,我是android的业余爱好者。我想将图像添加到我的微调器项目中。不幸的是,我不知道怎么做。下面是我的xml文件和Mainactive。感谢阅读。 XML文件 维护活动
我试着在以下帖子中进行解释: 将图片上载到emulator库 此位置的空文件夹 此位置的空文件夹 未添加此类位置 文件,但无法从厨房访问
我正在使用SWT创建一个新项目。我将在项目中有3或4个不同的表。我对SWT相当陌生,我发现自己在问自己是应该只使用< code >表格还是应该使用< code >表格查看器。 我想学习一些好的指导方针,告诉我什么时候只使用< code>Table以及什么时候< code>TableViewer是最佳途径。 < li >使用< code>TableViewer而不是< code>Table有什么好处