如何將超鏈接添加到SWT表?作爲TableItem添加超鏈接SWT
我需要一個普通TableItem對象作爲行的表,但有時我需要在那裏有一個超鏈接,這樣有人可以點擊它從應用程序級別打開鏈接的頁面。
有關如何實現此目的的任何提示?
如何將超鏈接添加到SWT表?作爲TableItem添加超鏈接SWT
我需要一個普通TableItem對象作爲行的表,但有時我需要在那裏有一個超鏈接,這樣有人可以點擊它從應用程序級別打開鏈接的頁面。
有關如何實現此目的的任何提示?
這是我的回答你的問題:而不是Button
,請添加Hyperlink
。
SWT - Tableviewer adding a remove button to a column in the table
作爲替代桑比雷迪的答案,你可以使用一個StyledCellLabelProvider
(如果您切換到一個TableViewer
)爲您的列,並使用一個StyledString
來代表你的鏈接。當然,你將不得不自己處理鼠標事件。
下面是一個例子:
// 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);
}
}
});
如果桌子是垂直定向的呢?有沒有辦法做到這一行? –
@MarcinKrzysiak你在使用'TableViewer'嗎?這些對象是按行還是列排列的?如果它們按行排序,則上面的示例將執行您想要的操作。 – Baz
對象按列排序。每列是一個單獨的對象。我不使用'TableViewer',但如果我寫的案例是可行的,我會的。如果不是,我可能會考慮改變我的項目佈局。 –
你使用一個簡單的'Table'或'TableViewer'? – Baz
@Baz一個'Table',但如果用'TableViewer'會更容易一些,我想我可以改變它。 –