制作java应用程序的帮助文件

原创 2002年08月15日 10:03:00

如果你使用过JBuilder,并且看过它的帮助的话,
想不想让你自己的应用程序也有个这么专业的帮助呢?
事实上做起来是很简单的,sun提供了一个JavaHelp可以帮助我们
实现这个目的。
使用javaHelp为应用添加帮助有两个步骤:
1,制作帮助文件(helpSet)。

现在先让我们来制作helpSet吧,打开http://java.sun.com/products/javahelp/download_binary.html.
下载一个zip版本的JavaHelp,目前最高好像是1.1.3。
开始制作一个名为"Hello,JavaHelp"的HelpSet,创建一个目录:"help",help下面再创建一个目录"hello"
在hello目录下面创建两个目录"First","Last",结构如下:
+ help
+ Hello
+ First
+ Last
目录建好了以后,我们要在Help目录下面写出四个文件:hello.hs,Map.jhm,index.xml以及toc.xml
hello.hs:
<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE helpset
PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 1.0//EN"
"http://java.sun.com/products/javahelp/helpset_1_0.dtd">

<helpset version="1.0">
<title>Hello, JavaHelp</title>
<maps>
<mapref location="Map.jhm"/>
<homeID>overview</homeID>
</maps>
<view>
<name>TOC</name>
<label>TOC</label>
<type>javax.help.TOCView</type>
<data>toc.xml</data>
</view>
<view>
<name>Index</name>
<label>Index</label>
<type>javax.help.IndexView</type>
<data>index.xml</data>
</view>
</helpset>
下面是Map.jhm文件的内容:
<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE map
PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 1.0//EN"
"http://java.sun.com/products/javahelp/map_1_0.dtd">

<map version="1.0">
<mapID target="overview" url="Hello/overview.htm" />
<mapID target="one" url="Hello/First/one.htm" />
<mapID target="two" url="Hello/First/two.htm" />
<mapID target="three" url="Hello/Last/three.htm" />
<mapID target="four" url="Hello/Last/four.htm" />
</map>
下面是index.xml文件的内容:
<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE index
PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Index Version 1.0//EN"
"http://java.sun.com/products/javahelp/index_1_0.dtd">

<index version="1.0">
<indexitem text="The First?">
<indexitem target="one" text="I'm One"/>
<indexitem target="two" text="I'm Second"/>
</indexitem>
<indexitem text="The Last?">
<indexitem target="three" text="We're Third!"/>
<indexitem target="four" text="We're Last"/>
</indexitem>
<indexitem target="overview" text="Overview!!!"/>
</index>

下面是toc.xml文件的内容:
<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE toc
PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 1.0//EN"
"http://java.sun.com/products/javahelp/toc_1_0.dtd">

<toc version="1.0">
<tocitem image="toplevelfolder" target="overview" text="Hello, JavaHelp">
<tocitem text="First Stuff">
<tocitem target="one" text="The One"/>
<tocitem target="two" text="The Second"/>
</tocitem>
<tocitem text="Last Stuff">
<tocitem target="three" text="What's Third?"/>
<tocitem target="four" text="The End"/>
</tocitem>
</tocitem>
</toc>
创建好以上四个文件以后,记得把它们放到help目录下面,
现在需要四个htm文件,把帮助内容写在htm里面,
Hello/overview.htm
Hello/First/one.htm
Hello/First/two.htm
Hello/Last/three.htm
Hello/Last/four.htm
那么现在Help目录下的结构就变成了下面一样:
+ help
hello.hs
index.xml
Map.jhm
toc.xml
+ Hello
overview.htm
+ First
one.htm
two.htm
+ Last
three.htm
four.htm
还记得开始让你下载的JavaHelp吗?解包以后在jh1.1.3/demos/bin目录下面有个hsviewer.jar文件
我们用它来查看帮助文件是否做得完美,将hsviewer.jar加入到classpath里面
假如jh1.1.3解压到了E:/,
set classpath=%classpath%;E:/jh1.1.3/demos/bin/hsviewer.jar
然后执行:
java sunw.demo.jhdemo.JHLauncher
有一个图形界面出来,按浏览按钮找到Help/hello.hs文件,按display显示帮助文件。
helpset显示如下图:




2,将帮助加到你的应用中来。

本质上,将应用程序和HelpSet联系起来的方法就是
将帮助文件名映射到swing的组件里来。这时你需要jh.jar
这个文件在jh1.1.3/javahelp/lib里面,你必须把它加入classpath
或者是拷贝到jre/lib/ext目录下。如果你用JBuilder,可以在菜单
Tools的Configure Libraries里面增加一个Lib,选择jh.jar,然后在
Project里面选择使用这个Lib。
javahelp的lib不小,其实核心的三个类HelpSet, HelpBroker,和CSH
就可以使javahelp运行起来了。
首先导入javahelp的类:
import javax.help.*;
然后你得找到HelpSet文件,通过包含HelpSet的URL对象
或者使用HelpSet类的findHelpSet方法得到URL对象,
findHelpSet方法通过ClassLoader找到帮助文件。
有了URL对象以后就可以构造一个HelpSet对象了:
import java.net.*;
...

HelpSet helpset = null;
ClassLoader loader = null;
URL url = HelpSet.findHelpSet(loader, "hello.hs");
try {
helpset = new HelpSet(loader, url);
} catch (HelpSetException e) {
System.err.println("Error loading");
return;
}
然后你要从helpset得到HelpBroker对象 。
HelpBroker helpbroker = helpset.createHelpBroker();

最后是帮助跟组件的绑定。
ActionListener listener =
new CSH.DisplayHelpFromSource(helpbroker);
overview.addActionListener(listener);



完整代码如下:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.help.*;
import java.net.*;

public class HelloHelp {
public static void main(String args[]) {
JFrame frame = new JFrame("Hello, JavaHelp");
frame.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
Container content = frame.getContentPane();

JMenuBar menubar = new JMenuBar();
JMenu helpMenu = new JMenu("Help");
JMenuItem overview = new JMenuItem("Overview");
JMenuItem specific = new JMenuItem("Specific");
helpMenu.add(overview);
helpMenu.add(specific);
menubar.add(helpMenu);
frame.setJMenuBar(menubar);

JButton button1 = new JButton("The Button");
JButton button2 = new JButton("Context");

content.add(button1, BorderLayout.NORTH);
content.add(button2, BorderLayout.SOUTH);

HelpSet helpset = null;
ClassLoader loader = null;
URL url = HelpSet.findHelpSet(loader, "hello.hs");
try {
helpset = new HelpSet(loader, url);
} catch (HelpSetException e) {
System.err.println("Error loading");
return;
}

HelpBroker helpbroker = helpset.createHelpBroker();

ActionListener listener =
new CSH.DisplayHelpFromSource(helpbroker);
overview.addActionListener(listener);

CSH.setHelpIDString(specific, "one");
specific.addActionListener(listener);

CSH.setHelpIDString(button1, "two");
ActionListener tracker =
new CSH.DisplayHelpAfterTracking(helpbroker);
button2.addActionListener(tracker);

JRootPane rootpane = frame.getRootPane();
helpbroker.enableHelpKey(rootpane, "three", helpset);

frame.setSize(200, 200);
frame.show();
}
}

以上目录和文件以及程序你可以在http://www.jzventures.com/javahelp.zip下载。

制作已编译的html帮助文件

http://www.cnblogs.com/cm186man/archive/2008/03/10/1098896.html引用 HTML帮助文档从结构上来看可分为两个部分,运行器和文档内容。它的...
  • aidem_brown
  • aidem_brown
  • 2014年08月04日 15:05
  • 894

一个制作java小应用程序的全过程

一个制作java小应用程序的全过程         一、安装java软件:     从网上下载jdk-7u25-windows-i586.exe,安装到C:\Program Files\Java\j...
  • myhrrjava
  • myhrrjava
  • 2016年10月12日 08:12
  • 4157

如何制作chm格式的帮助文件

我们经常需要为应用程序制作chm格式的帮助文件。一般都会通过微软提供的HTML Help Workshop这个软件来完成。 该工具的下载地址是: http://www.microsoft....
  • GarfieldEr007
  • GarfieldEr007
  • 2016年01月09日 19:23
  • 1046

如何制作chm格式的帮助文件

我们经常需要为应用程序制作chm格式的帮助文件。一般都会通过微软提供的HTML Help Workshop这个软件来完成。 该工具的下载地址是: http://www.microsoft.com/...
  • fyqmegan
  • fyqmegan
  • 2013年07月11日 11:03
  • 515

CHM文件(已编译的 HTML 帮助文件)打开不显示的解决办法

今天早上下了个CHM的文档,打开发现无法显示内容,如下图:            一开始以为CHM文件的问题,研究了一下发现不是,有2种方法可以解决: ...
  • Inite
  • Inite
  • 2016年07月06日 10:33
  • 326

为Java程序制作windows安装包

将java程序制作成Windows下的安装需要完成如下步骤: 把程序的class文件打包成Jar文件把jar文件转成exe精简JRE将整个程序(包含jre)打包成安装包 使用exe4j将jar...
  • u013244517
  • u013244517
  • 2015年01月16日 22:28
  • 1183

Java小应用程序

Java小应用程序:Java程序可以嵌入到网页中运行的Java程序 Java小应用程序中没有main方法,所有的小应用程序都是javax.swing.JApplet类或者它的超类(Java.appl...
  • hry1243916844
  • hry1243916844
  • 2017年05月06日 11:12
  • 709

手动创建简单CHM帮助文件

CHM是英语“Compiled Help Manual”的简写,即“已编译的帮助文件”。这是一个HTML格式的帮助文档,源文件就是HTML文件以及jpg、gif等等HTML所支持的元素。网上有许多的资...
  • zp357252539
  • zp357252539
  • 2016年12月30日 11:22
  • 201

制作应用程序安装包完整流程

第一步:快速体验 首先,我们可以来快速体验一下用InstallShield制作的安装程序是什么样的。 当然,我不可能详细到怎样建立一个项目之类的问题,有关这方面的内容还请看InstallShi...
  • ghevinn
  • ghevinn
  • 2013年02月26日 15:38
  • 5936

C# 如何生成CHM帮助文件

C# 如何生成CHM帮助文件     前一段时间应公司要求,让我开发一个数据库字段信息CHM帮助文件生成软件。结果当时我就二了,这个东西我只用过,不知道咋做啊。没想到老大很随意说一句:"没事,这...
  • moshansk
  • moshansk
  • 2016年02月16日 10:33
  • 2045
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:制作java应用程序的帮助文件
举报原因:
原因补充:

(最多只允许输入30个字)