作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Jface tableviewer 列中使用复选框图像,我想在表列的中心显示复选框图像。请检查所附图片并分享您的想法以解决此问题。提前致谢,
customizedTableViewer = new TableViewer(parent, SWT.BORDER | SWT.FULL_SELECTION);
customizedTable.setLinesVisible(true);
customizedTable.setHeaderVisible(true);
customizedTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
TableColumn refTemplateTblclmnColumn = new TableColumn(customizedTable, SWT.NONE);
refTemplateTblclmnColumn.setWidth(180);
refTemplateTblclmnColumn.setText(TextResources.TEMPLATE_COLUMN);
TableColumn hospitalTblclmnColumn = new TableColumn(customizedTable, SWT.NONE);
// I have tried following code but it's not working.
hospitalTblclmnColumn.setAlignment(SWT.CENTER);
hospitalTblclmnColumn.setWidth(100);
hospitalTblclmnColumn.setText(TextResources.EL_HSP_COLUMN);
TableColumn providerTblclmnColumn = new TableColumn(customizedTable, SWT.NONE);
providerTblclmnColumn.setWidth(100);
providerTblclmnColumn.setText(TextResources.EL_PROVIDER_COLUMN);
最佳答案
SWT.CENTER 样式仅使文本居中。对于普通标签提供商来说,无法获得居中图像。您需要使用基于 OwnerDrawLabelProvider
的内容自行绘制列。
最好的办法是使用 TableViewerColumn
而不是 TableColumn
,这样您就可以为每列设置单独的标签提供程序。您想要居中图像的列可以使用所有者绘制标签提供程序,如下所示:
public abstract class CentredImageCellLabelProvider extends OwnerDrawLabelProvider
{
public CentredImageCellLabelProvider()
{
super();
}
@Override
protected void measure(Event event, Object element)
{
// No action
}
@Override
protected void erase(Event event, Object element)
{
// Don't call super.erase() to suppress non-standard selection draw
}
@Override
protected void paint(Event event, Object element)
{
TableItem item = (TableItem)event.item;
Rectangle itemBounds = item.getBounds(event.index);
GC gc = event.gc;
Image image = getImage(element);
Rectangle imageBounds = image.getBounds();
int x = event.x + Math.max(0, (itemBounds.width - imageBounds.width) / 2);
int y = event.y + Math.max(0, (itemBounds.height - imageBounds.height) / 2);
gc.drawImage(image, x, y);
}
protected abstract Image getImage(Object element);
}
关于java - 如何在 Jface tableviewer 列复选框图像中对齐中心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50586640/
我正在寻找用于(漂亮的)电路/方框图绘图的算法或可视化工具。 我也对问题的一般表述感兴趣。 “电路图”是指探索具有 I/O 端口及其连接(电线)的框图(矩形)的布局和布线的能力。这些框图可以是分层的,
我有很多 C 代码,需要将其转换为 Simulink 框图。我不想使用 S-Functions,因为我希望 Simulink 框图仅使用基本 Simulink 模块,用户无需了解 C 代码即可更改这些
我是一名优秀的程序员,十分优秀!