如何向 SWT 表添加超链接?
我需要一个以普通 TableItem 对象作为行的表,但有时我需要在那里有一个超链接,以便有人可以单击它从应用程序级别打开链接页面。
关于如何实现这一目标的任何提示?
作为 sambi reddy 的答案的替代方案,您可以使用 a StyledCellLabelProvider
(如果您切换到 a TableViewer
)作为您的列,并使用 aStyledString
来表示您的链接。当然,您必须自己处理鼠标事件。
这是一个例子:
// Column for the link
TableViewerColumn col2 = createTableViewerColumn("Link", 100, 1, viewer);
col2.setLabelProvider(new StyledCellLabelProvider() {
@Override
public void update(ViewerCell cell)
{
Object element = cell.getElement();
if(element instanceof Person)
{
Person person = (Person) cell.getElement();
/* make text look like a link */
StyledString text = new StyledString();
StyleRange myStyledRange = new StyleRange(0, person.getLocation().length(), Display.getCurrent().getSystemColor(SWT.COLOR_BLUE), null);
myStyledRange.underline = true;
text.append(person.getLocation(), StyledString.DECORATIONS_STYLER);
cell.setText(text.toString());
StyleRange[] range = { myStyledRange };
cell.setStyleRanges(range);
super.update(cell);
}
}
});
这是我对您的问题的回答:代替 a Button
,添加 a Hyperlink
。