SWTテーブルにハイパーリンクを追加するにはどうすればよいですか?
通常のTableItemオブジェクトを行として持つテーブルが必要ですが、誰かがそれをクリックしてアプリケーションレベルからリンクされたページを開くことができるように、ハイパーリンクが必要になる場合があります。
これを達成するためのヒントはありますか?
sambi reddy の回答の代わりに、StyledCellLabelProvider
( a に切り替えた場合TableViewer
) を列に使用し、 aを使用し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);
}
}
});
あなたの質問に対する私の答えは次のとおりButton
ですHyperlink
。