我正在为一个应用程序(基于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
)。