【问题标题】:How can I add a hyperlink to a JFace Dialog如何将超链接添加到 JFace 对话框
【发布时间】:2011-04-27 11:39:30
【问题描述】:

如何在 JFace 对话框中创建超链接,单击该超链接会在默认 Web 浏览器中打开链接。一个完整的例子会很有用。我知道有一个org.eclipse.jface.text.hyperlink 包,但我找不到合适的例子。

【问题讨论】:

    标签: java swt eclipse-rcp jface


    【解决方案1】:

    您是否正在运行 RCP 应用程序?

    如果是这样,那么以下代码将在默认操作系统浏览器中打开您的链接:

     // 'parent' is assumed to be an SWT composite
     Link link = new Link(parent, SWT.NONE);
        String message = "This is a link to <a href=\"www.google.com\">Google</a>";
        link.setText(message);
        link.setSize(400, 100);
        link.addSelectionListener(new SelectionAdapter(){
            @Override
            public void widgetSelected(SelectionEvent e) {
                   System.out.println("You have selected: "+e.text);
                   try {
                    //  Open default external browser 
                    PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser().openURL(new URL(e.text));
                  } 
                 catch (PartInitException ex) {
                    // TODO Auto-generated catch block
                     ex.printStackTrace();
                } 
                catch (MalformedURLException ex) {
                    // TODO Auto-generated catch block
                    ex.printStackTrace();
                }
            }
        });
    

    以上假设您不想扫描现有文本以查找超链接,而只是希望以编程方式创建一个。如果需要前者,那么您将需要使用 JFace 文本包中的 API 等。

    【讨论】:

    • 需要RCP的部分是什么? PlatformUI.getWorkbench()...?
    • 完美!是的,我需要它用于 RCP 应用程序,所以这很好:)
    • mklhmm:是的,PlatformUI.getWorkbench() 调用需要 org.eclipse.ui 包,它是 RCP SDK 的一部分。我很高兴这对你有用,Alb。
    • +1 在我的 Mac 上运行良好。但是在窗口中这个link 很有帮助,因为 eclipse 没有得到 java.ui 包。
    • 万一它被任何人遗漏了......到谷歌的链接需要在它前面加上“http://”。
    猜你喜欢
    • 2011-01-28
    • 2011-12-08
    • 2019-02-07
    • 1970-01-01
    • 2020-02-14
    • 2017-10-12
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多