Article来源:Eclipse Forms: Rich UI for the Rich Client
于是顺手就拿来用了:
Composite parent = getFieldEditorParent();
FormToolkit toolkit = new FormToolkit(parent.getDisplay());
Form form = toolkit.createForm(parent);
form.setText(UIMessages.CollaborationServerPreferencePage_RegisterInfo);
form.setBackground(parent.getBackground());
GridLayout layout = new GridLayout();
form.getBody().setLayout(layout);
String url = UIMessages.CollaborationServerPreferencePage_RegisterLink;
Hyperlink link = toolkit.createHyperlink(form.getBody(), url, SWT.WRAP);
link.setBackground(parent.getBackground());
link.addHyperlinkListener(new HyperlinkAdapter() {
public void linkActivated(HyperlinkEvent e) {
//TODO call web browser
System.out.println("Link activated!");
}
});
重点见红字部分。当然Hyperlink是在org.eclipse.ui.forms组件里,要事先关联才行。3.0以上版本已自动集成。
剩下的就是专心处理listener部分。
还有一种办法是使用StyledText对象,添加listener事件。但form组件本身就使用了StyledText对象,所以没有必要钻木取火,直接用现成的好了。
xxxxxxxxx
open browser 的补充:
link: http://wiki.eclipse.org/How_can_I_invoke_the_eclipse_default_web_browser_in_my_own_plugin%3F
代码为:
IWorkbenchBrowserSupport support = PlatformUI.getWorkbench().getBrowserSupport();
IWebBrowser browser = support.createBrowser("someId");
browser.openURL(new URL("http://www.eclipse.org"));
这里使用的是eclipse自带的browser