1

我今天的问题是我有一个可以连接另一个程序的 GUI。我的 GUI 中有一个文本区域,我想显示用户选择的特定组件的类文档。

示例:用户选择“协议”设置我希望它显示该“协议”的 JavaDoc。

如何识别正确的 Javadoc 并将其显示在文本区域中?

4

3 回答 3

2

..Javadoc .. 在文本区域中呈现它?

不要使用 a JTextArea,而是使用JEditorPane. 后者将呈现 HTML。

于 2013-08-23T17:58:27.050 回答
2

我会建议 3 种可能的方法:

  • 作为构建的一部分,像往常一样创建 Javadoc HTML,然后将其包含在您的可部署文件中,并让您的 GUI 使用某种嵌入式浏览器(例如 WebKit)
  • 研究它是如何由其他 GUI 完成的,例如从 Eclipse 的 Javadoc View 或使用扩展 Eclipse Javadoc View 的项目
  • 使用 Java 源 (Javadoc)解析库/工具,例如QDox

来自 QDox 的示例代码:

JavaDocBuilder builder = new JavaDocBuilder();
builder.addSource(new FileReader("MyFile.java"));
于 2013-08-23T16:16:55.820 回答
1

JavaDoc 不是 Java 程序的一部分。因此,无论您使用什么方法,您都必须将资源与您的程序捆绑在一起。

所以你有两种可能:

  1. 使用 javadoc 生成文档并捆绑结果。通过查看生成的文件,很容易了解如何从类名映射到 html 页面。JavaDoc 文档(更准确地说是默认 doclet 的文档)包含更详细的描述

  2. 如果您想即时生成文档,您必须将源代码与您的应用程序捆绑在一起。此外,您的应用程序必须在 JDK 而不是普通的 JRE 中运行才能获得 JavaDoc。

请参阅http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/standard-doclet.html

以编程方式运行标准 Doclet

Javadoc 工具有一个带有公共方法的编程接口,用于从另一个用 Java 语言编写的程序调用 Javadoc 工具。这些方法位于 lib/tools.jar 中的 com.sun.tools.javadoc.Main 类中。…</p>

public static int execute(String programName, PrintWriter errWriter, PrintWriter warnWriter, PrintWriter noticeWriter, String defaultDocletClassName, String[] args)

此执行方法因采用较少参数的变体而重载。

于 2013-08-23T16:16:59.910 回答