如何设置ImageHyperlink以获得欢迎页面中的标题和描述?

时间:2014-01-08 08:45:26

标签: eclipse hyperlink eclipse-plugin eclipse-rcp

我需要绘制一个看起来与之相似的ImageHyperlink Eclipse的欢迎页面,其中文本由粗体标题和 描述,但我在ImageHyperlink小部件中找不到此功能 本身,我是否必须自己覆盖paintHyperlink()?如果是的话,可以 有人提供一个片段?

2 个答案:

答案 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);

}