我需要绘制一个看起来与之相似的ImageHyperlink
Eclipse的欢迎页面,其中文本由粗体标题和
描述,但我在ImageHyperlink
小部件中找不到此功能
本身,我是否必须自己覆盖paintHyperlink()
?如果是的话,可以
有人提供一个片段?
答案 0 :(得分:0)
如果我正确阅读了源代码(并且它非常复杂),欢迎页面实际上是使用HTML而不是ImageHyperlink
完成的。
您覆盖paintHyperlink
的{{1}}方法:
ImageHyperlink
所以你应该能够做类似的事情。
答案 1 :(得分:0)
或者,作为一种选择,您可以尝试模仿外观,使用标准方法创建复合材料(只需按照您的意愿设计样式;)):
private void demoHyperlinks() {
form.getBody().setLayout(new GridLayout());
Composite container = new Composite(form.getBody(), SWT.NONE);
container.setLayout(new GridLayout());
ImageHyperlink imageHyperlink = toolkit.createImageHyperlink(container, SWT.NULL);
imageHyperlink.setText("This is an image hyperlink.");
imageHyperlink.setForeground(getShell().getDisplay().getSystemColor(SWT.COLOR_BLUE));
imageHyperlink.setFont(new Font(form.getDisplay(), new FontData("Verdana", 20, SWT.BOLD)));
imageHyperlink.setImage(new Image(getShell().getDisplay(), "images/help.gif"));
imageHyperlink.addHyperlinkListener(new HyperlinkAdapter() {
@Override
public void linkActivated(HyperlinkEvent e) {
System.out.println("Image hyperlink activated.");
}
});
Composite descriptionContainer = new Composite(container, SWT.NONE);
GridLayout gl = new GridLayout();
gl.marginLeft = 25;
descriptionContainer.setLayout(gl);
Hyperlink hyperlink = toolkit.createHyperlink(descriptionContainer, "This is a hyperlink link", SWT.NULL);
hyperlink.setForeground(getShell().getDisplay().getSystemColor(SWT.COLOR_BLUE));
HyperlinkGroup group = new HyperlinkGroup(getShell().getDisplay());
group.add(imageHyperlink);
group.add(hyperlink);
group.setHyperlinkUnderlineMode(HyperlinkSettings.UNDERLINE_NEVER);
}