Java 如何将超链接添加到JFace对话框

Java 如何将超链接添加到JFace对话框,java,swt,eclipse-rcp,jface,Java,Swt,Eclipse Rcp,Jface,如何在JFace对话框中创建超链接,单击该对话框可在默认web浏览器中打开链接。一个完整的例子会很有用。我知道有一个org.eclipse.jface.text.hyperlink包,但我找不到合适的例子。您正在运行RCP应用程序吗 如果是,则以下代码将在默认操作系统浏览器中打开您的链接: // 'parent' is assumed to be an SWT composite Link link = new Link(parent, SWT.NONE); String messa

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

您正在运行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();
            }
        }
    });
假定“父项”为SWT组合 链接=新链接(父级,SWT.NONE); String message=“这是指向的链接”; link.setText(消息); 链接设置大小(400100); link.addSelectionListener(新建SelectionAdapter(){ @凌驾 公共无效WidgeSelected(SelectionEvent e){ System.out.println(“您已选择:”+e.text); 试一试{ //打开默认的外部浏览器 PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser().openURL(新URL(e.text)); } 捕获(PartInItemEx){ //TODO自动生成的捕捉块 例如printStackTrace(); } 捕获(格式错误){ //TODO自动生成的捕捉块 例如printStackTrace(); } } });
以上假设您不希望扫描现有文本中的超链接,而只是希望以编程方式创建一个超链接。如果需要前者,则需要使用JFace文本包或类似的API。

需要RCP的部分是什么?
平台ui.getWorkbench()…
?完美!是的,我在RCP应用程序中需要它,所以这很好地完成了任务:)mklhmm:是的,PlatformUI.getWorkbench()调用需要org.eclipse.ui包,它是RCP SDK的一部分。我很高兴这对你有用。在我的mac电脑上+1运行良好。但在窗口中,这是有帮助的,因为eclipse并没有得到java.ui包。。。指向谷歌的链接前面需要“http://”。