使用javaHelp制作java swing帮助文档

 

最近在做一个Swing项目,项目接近尾声,需要做最后的帮助系统了。简单搜索了一下,找到了javaHelp。JavaHelp是sun推出的编写帮助系统的一个类库,能够开发类似windows的CHM帮助文档。Jar包下载地址:http://dl.vmall.com/c0paz9lpea 。

一个完整的帮助系统至少需要下图中的几个文件。HelloHelp.java是帮助系统启动的类。Hello.hs是帮助系统的核心helpset,必须以hs为后缀。Map.jhm是一个映射文件,它将帮助系统中每一项映射到硬盘上的某个html文件,必须以jhm结尾。Toc.xml是主题文件,可以控制帮助系统的界面等一些东西。Hello文件夹内是N多个html文件,和CHM类似,这个不多说。下面详细解释一下每个文件。

 

  1. hello.java
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");

    helpMenu.add(overview);

    menubar.add(helpMenu);

    frame.setJMenuBar(menubar);

 

    HelpSet helpset = null;

    ClassLoader loader = null;

    URL url = HelpSet.findHelpSet(loader, "hello.hs");//这一句是找到helpset文件

    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);

 

    frame.setSize(500, 300);

    frame.show();

  }

}

 

2.接下来看Hello.hs中的代码。一个maps节点指向的是map映射文件<homeID>overview</homeID>这一句指定了帮助系统的根节点,其中view节点指向的是主题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>

</helpset>

 

 

3.继续看map映射文件。MapID的target是在其他代码中使用的,不能重复。url指向的就是html文件。帮助系统中的每个帮助项都是一个html文件。

//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>

 

4.最后是toc.xml。target必须是在map中已定义的值,不然是找不到的。像这种结构

 

<tocitem target="overview" text="Hello, JavaHelp">

    <tocitem text="First Stuff">

      <tocitem target="one" text="The One"/>

      <tocitem target="two" text="The Second"/>

         </tocitem>

</tocitem>

 

最后显示出来的结构就是这样的

--- Hello, JavaHelp

   ----- First Stuff

       ----- The One

       ----- The Second

Text是在界面上显示的值

//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 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>

 

 

这个比较简单,有兴趣的可以把代码复制进自己的程序试试。记得把Hello文件中的几个html文件补上。

转载请注明:http://www.cnblogs.com/timeng/archive/2012/08/16/2643241.html

转载于:https://www.cnblogs.com/timeng/archive/2012/08/16/2643241.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 图形界面开发简介 .............. ................................ ................................ ..... 5 1. Swing1. Swing1. Swing 1. Swing1. Swing1. Swing1. Swing简介 ................................ ................................ ................................ ................................ ............... 5 2. Swing2. Swing2. Swing 2. Swing2. Swing2. Swing2. Swing组件 ................................ ................................ ................................ ................................ ............... 5 3. 3. 3. 布局管理器 布局管理器 ................................ ................................ ................................ ................................ ............. 8 4. 4. 4. 代码实例 代码实例 : 一个简单的窗口程序 一个简单的窗口程序 一个简单的窗口程序 一个简单的窗口程序 一个简单的窗口程序 ................................ ................................ ................................ ..... 9 1.1: FlowLayo1.1: FlowLayo1.1: FlowLayo1.1: FlowLayo1.1: FlowLayo 1.1: FlowLayo 1.1: FlowLayout (流式布局) (流式布局) (流式布局) (流式布局) ................................ ................................ ................................ ...................... 10 1. 概述 ................................ ................................ ................................ ................................ ....................... 10 2. 代码实例 ................................ ................................ ................................ ................................ .............. 11 1.2: GridLayout(网格布局) (网格布局) (网格布局) (网格布局) ................................ ................................ ................................ ..................... 13 1. 概述 ................................ ................................ ................................ ................................ ....................... 13 2. 代码演示 ................................ ................................ ................................ ................................ .............. 14 1.3: GridBagLayout1.3: GridBagLayout1.3: GridBagLayout1.3: GridBagLayout1.3: GridBagLayout 1.3: GridBagLayout 1.3: GridBagLayout1.3: GridBagLayout 1.3: GridBagLayout1.3: GridBagLayout 1.3: GridBagLayout1.3: GridBagLayout(网格袋布局) (网格袋布局) (网格袋布局) (网格袋布局) ................................ ................................ ................................ ........... 17 1. 布局 : GridBagLayout ................................ ................................ ................................ ...................... 17 2. 约束 : GridBagConstraints ................................ ................................ ................................ ............. 17 3. 属性 : GridBagConstraints 的属性 ................................ ................................ ............................. 18 4. 案例 : GridBagLayout使用实例 使用实例 ................................ ................................ ................................ ... 19 1.4: BoxLayout1.4: BoxLayout1.4: BoxLayout1.4: BoxLayout1.4: BoxLayout 1.4: BoxLayout1.4: BoxLayout1.4: BoxLayout 1.4: BoxLayout1.4: BoxLayout(箱式布局) (箱式布局) (箱式布局) (箱式布局) ................................ ................................ ................................ ........................ 25 1. 概述 ................................ ................................ ................................ ................................ ....................... 25 2. 代码实例 ................................ ................................ ................................ ................................ .............. 27 1.5: GroupLayout(分组布局) (分组布局) (分组布局) ................................ ................................ ................................ ................. 29 1. 概述 ................................ ................................ ................................ ................................ ....................... 29 2. 代码实例 ................................ ................................ ................................ ................................ .............. 31 1.6: CardLayout(卡片布局) (卡片布局) (卡片布局) ................................ ................................ ................................ .................... 36 1. 概述 ................................ ................................ ................................ ................................ ....................... 36 2. 代码实例 ................................ ................................ ................................ ................................ .............. 37 1.7: BorderLayout(边界布局) (边界布局) (边界布局) ................................ ................................ ................................ ................ 40 1. 概述 ................................ ................................ ................................ ................................ ....................... 40 2. 代码实例 ................................ ................................ ................................ ................................ .............. 41 1.8: SpringLayout(弹性布局) (弹性布局) (弹性布局) ................................ ................................ ................................ ................ 43 1. 概述 ................................ ................................ ................................ ................................ ....................... 43 2. 代码实例 ................................ ................................ ................................ ................................ .............. 47 1.9: null(绝对布局) (绝对布局) (绝对布局) ................................ ................................ ................................ ................................ .... 52 1. 概述 ................................ ................................ ................................ ................................ ....................... 52 2. 代码实例 ................................ ................................ ................................ ................................ .............. 53 2.1: JLabel(标签) (标签) (标签) ................................ ................................ ................................ ................................ ....... 56 1. 概述 ................................ ................................ ................................ ................................ ....................... 56 2. 代码实例 ................................ ................................ ................................ ................................ .............. 61 2.2: JButton(按钮) (按钮) (按钮) ................................ ................................ ................................ ................................ ..... 64 1. 概述 ................................ ................................ ................................ ................................ ....................... 64 2. 代码实例 : 默认按钮 默认按钮 ................................ ................................ ................................ ........................ 66 3. 代码实例 : 自定义图片按钮 自定义图片按钮 自定义图片按钮 自定义图片按钮 ................................ ................................ ................................ .......... 68 2.3: JRadioButton(单选按钮) (单选按钮) (单选按钮) ................................ ................................ ................................ ................ 71 2 1. 概述 ................................ ................................ ................................ ................................ ....................... 71 2. 代码实例 ................................ ................................ ................................ ................................ .............. 73 2.4: JCheckBox(复选框) (复选框) (复选框) ................................ ................................ ................................ ......................... 75 1. 概述 ................................ ................................ ................................ ................................ ....................... 75 2. 代码实例 ................................ ................................ ................................ ................................ .............. 77 2.5: JToggleButton(开关按钮) (开关按钮) (开关按钮) ................................ ................................ ................................ .............. 80 1. 概述 ................................ ................................ ................................ ................................ ....................... 80 2. 代码实例 : 默认 的开关按钮 的开关按钮 的开关按钮 ................................ ................................ ................................ .......... 82 3. 代码实例 : 自定义图片开关 自定义图片开关 自定义图片开关 自定义图片开关 ................................ ................................ ................................ .......... 84 2.6: JTextField(文本框) (文本框) (文本框) ................................ ................................ ................................ ........................... 87 1. 概述 ................................ ................................ ................................ ................................ ....................... 87 2. 实例代码 ................................ ................................ ................................ ................................ .............. 91 2.7:PasswordField(密码框) (密码框) (密码框) ................................ ................................ ................................ ................... 93 1. 概述 ................................ ................................ ................................ ................................ ....................... 93 2. 代码实例 ................................ ................................ ................................ ................................ .............. 96 2.8: JTextArea(文本区域) (文本区域) (文本区域) (文本区域) ................................ ................................ ................................ ....................... 98 1. 概述 ................................ ................................ ................................ ................................ ....................... 98 2. 代码实例 ................................ ................................ ................................ ................................ ............ 103 2.9: JComboBox(下拉列表框) (下拉列表框) (下拉列表框) ................................ ................................ ................................ ............ 105 1. 概述 ................................ ................................ ................................ ................................ ..................... 105 2. 代码实例 ................................ ................................ ................................ ................................ ............ 107 2.10: JList(列 表框) 表框) ................................ ................................ ................................ ................................ .. 110 1. 概述 ................................ ................................ ................................ ................................ ..................... 110 2. 代码实例 ................................ ................................ ................................ ................................ ............ 113 2.11: JProgressBar(进度条) (进度条) (进度条) ................................ ................................ ................................ ................ 117 1. 概述 ................................ ................................ ................................ ................................ ..................... 117 2. 代码实例 ................................ ................................ ................................ ................................ ............ 119 2.12: JSlider(滑块) (滑块) (滑块) ................................ ................................ ................................ ................................ .. 123 1. 概述 ................................ ................................ ................................ ................................ ..................... 123 2. 代码实例 : 默认刻度值 默认刻度值 默认刻度值 ................................ ................................ ................................ .................. 126 3. 代码实例 : 自定义标签刻度值 自定义标签刻度值 自定义标签刻度值 自定义标签刻度值 ................................ ................................ ................................ .... 128 3.1: JPanel(面板) (面板) ................................ ................................ ................................ ................................ ..... 132 1. 概述 ................................ ................................ ................................ ................................ ..................... 132 2. 代码实例 ................................ ................................ ................................ ................................ ............ 133 3.2: JScrollPane(滚动面板) (滚动面板) (滚动面板) (滚动面板) ................................ ................................ ................................ ................. 135 1. 概述 ................................ ................................ ................................ ................................ ..................... 135 2. 代码实例 ................................ ................................ ................................ ................................ ............ 138 3.2: JScrollPane(滚动面板) (滚动面板) (滚动面板) (滚动面板) ................................ ................................ ................................ ................. 140 1. 概述 ................................ ................................ ................................ ................................ ..................... 140 2. 代码实例 ................................ ................................ ................................ ................................ ............ 142 3.4: JTabbedPane(选项卡面板) (选项卡面板) (选项卡面板) (选项卡面板) ................................ ................................ ................................ ......... 145 1. 概述 ................................ ................................ ................................ ................................ ..................... 145 2. 代码实例 ................................ ................................ ................................ ................................ ............ 149 3.5: JLayeredPane(层级面板) (层级面板) (层级面板) ................................ ................................ ................................ ............

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值