import java.net.*;
import javax.help.*;
import javax.swing.*;
import java.awt.event.*;
public class HelpMenu {
JFrame f;
JMenuItem topics;
public HelpMenu() {
f = new JFrame("Menu Example");
JMenuBar mbar = new JMenuBar();
// a file menu
JMenu file = new JMenu("File");
JMenu help = new JMenu("Help");
// add an item to the help menu
help.add(topics = new JMenuItem("Help Topics"));
// add the menu items to the menu bar
mbar.add(file);
mbar.add(help);
// 1. create HelpSet and HelpBroker objects
HelpSet hs = getHelpSet("sample.hs");
HelpBroker hb = hs.createHelpBroker();
// 2. assign help to components
CSH.setHelpIDString(topics, "top");
// 3. handle events
topics.addActionListener(new CSH.DisplayHelpFromSource(hb));
// attach menubar to frame, set its size, and make it visible
f.setJMenuBar(mbar);
f.setSize(500, 300);
f.setVisible(true);
}
/**
* find the helpset file and create a HelpSet object
*/
public HelpSet getHelpSet(String helpsetfile) {
HelpSet hs = null;
ClassLoader cl = this.getClass().getClassLoader();
try {
URL hsURL = HelpSet.findHelpSet(cl, helpsetfile);
hs = new HelpSet(null, hsURL);
} catch(Exception ee) {
System.out.println("HelpSet: "+ee.getMessage());
System.out.println("HelpSet: "+ helpsetfile + " not found");
}
return hs;
}
public static void main(String argv[]) {
new HelpMenu();
}
}
实验该代码的最简单的方法是将 HelpMenu.java 拷贝至 c:\myhelp下。编译并运行它。如果一切正常,您会看到类似图 5 的情况。如果单击帮助主题(
Help Topics), 那么就会出现图 4 中的帮助信息窗口。
JavaHelp API 是需要运行于异构环境当中的在线帮助信息系统之作者和开发人员的首选技术。JavaHelp
系统可为开发人员增值,并提供完整的软件应用程序,同时无需对编程和开发进行大量投资。此外,许多公司已经认可了 JavaHelp 系统,并计划使用该 API
来建立统一的界面,以进行显示和在内部和外部文档间导航。