我正在为一个应用程序(基于NetBeans构建)创建一些帮助内容,并认为在某些情况下能够在JavaHelp中显示教程视频或具有打开视频的链接会很有用。

我想也许可以使用<OBJECT>标记,但是我不知道要嵌入哪个对象。我从http://download.java.net/javadesktop/javahelp/jhug.pdf获得的关于JavaHelp的知识很少,因此得出的结论是,我应该获得一些能够播放.avi的轻量级Java组件,并将其嵌入<object>标签。或者更确切地说,在帮助中具有一个链接,可以在单独的窗口中打开.avi。

是否有人对如何完成工作有任何指示?

编辑:

我已经尝试过添加自己的轻量级组件的更多尝试,但是没有成功。所以我想知道我是否将组件放置在错误的位置。如果我尝试将JButton添加到JavaHelp

 <object
     classid="java:javax.swing.JButton">
 </object>

它出现在JavaHelp中就好了。

如果我尝试自己的按钮,例如
 <object
     classid="java:my.module.TestButton">
 </object>

我刚得到几个红色的“???”

类TestBytton只是
package my.module;

import javax.swing.JButton;

public class TestButton extends JButton{

}

TestButton与javahelp-html位于同一NetBeans项目中,并且TestButton所在的包是公共(public)的。有任何想法吗?

编辑2:
好的,所以我已经对此进行了更多研究。看来最终com.sun.java.help.impl.CustomKit$CustomDocument类将尝试执行
getClass().getClassLoader().loadClass("my.module.TestButton")

这将导致ClassNotFoundException。那可能是如果我正确理解的原因,因为将使用的类加载器将仅找到位于
netbeans模块称为JavaHelp Integration。其中不是my.module.TestButton。所以...我又被卡住了。我认为我无法轻松地向该模块添加任何内容。

最佳答案

我不知道以这种方式将视频嵌入JavaHelp的任何方法。但是,您应该能够创建到嵌入视频的HTML文件的常规超链接(以某种方式),以供外部浏览器使用。 http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-javahelp/org/netbeans/api/javahelp/doc-files/api.html#external-links显示了如何进行链接。

如果要使其脱机工作,请将HTML包含在NBM文件集中,并使用nbinst URL协议(protocol);例如,如果在源代码中的release/docs/helpvid.html中(对于基于Ant的NBM项目),则nbinst://my.module.code.name.base/docs/helpvid.html应该在应用程序的安装中链接到它。据我所知,JavaHelp模块的链接处理程序会将URL转换为等效的file -protocol URL,然后再将其传递给已配置的Web浏览器(在JDK 6+上默认为Desktop.browse)。

10-07 15:30