StyledText可以用于显示可编辑HTML控件,支持附件等! eclipse上styledText的示例扩展了styledText StyledText fText = new StyledText(shell, SWT.V_SCROLL | SWT.H_SCROLL); fText.setEditable(false); TextPresentation fPresentation= new TextPresentation(); HTMLTextPresenter fPresenter= new HTMLTextPresenter(false); fPresentation.clear(); String javadocHtml = "<B>Hello</B>" + System.getProperty("line.separator", "/n") + "World"; Rectangle size= fText.getClientArea(); try { javadocHtml = fPresenter.updatePresentation(shell.getDisplay(), javadocHtml, fPresentation, size.width, size.height); } catch (IllegalArgumentException ex) { // the javadoc might no longer be valid return; } fText.setText(javadocHtml); TextPresentation.applyTextPresentation(fPresentation, fText); 这段代码是用于在StyledText显示HTML标签。 HTMLPrinter用于向StringBuffer插入HTML元素 String content= JavadocContentAccess2.getHTMLContent(member, true, true); 其中member是JAVAElement,获得这个元素的JAVADOC // boolean hasAttachedJavadoc= JavaDocLocations.getJavadocBaseLocation(member) != null; // IPackageFragmentRoot root= (IPackageFragmentRoot)member.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); // boolean hasAttachedSource= root != null && root.getSourceAttachmentPath() != null; // IOpenable openable= member.getOpenable(); // boolean hasSource= openable.getBuffer() != null; // member.getElementType() == IJavaElement.FIELD // String imageName= null; // if (allowImage) { // URL imageUrl= JavaPlugin.getDefault().getImagesOnFSRegistry().getImageURL(member); // if (imageUrl != null) { // imageName= imageUrl.toExternalForm(); // } // } // // StringBuffer buf= new StringBuffer(); // JavadocHover.addImageAndLabel(buf, imageName, 16, 16, 8, 5, label.toString(), 22, 0);