1

如何设置JavaHelpJFrame Icon的(外部的左上角) 。我知道如何设置类别和主题(toc.xml),但我没有成功设置.JFrameWindowImagesJFrame Icon

我可以通过查找框架并设置图标以编程方式完成此操作,但我正在寻找一种使用 JavaHelp 配置文件以声明方式执行此操作的方法。

4

2 回答 2

1

谷歌上的大多数答案都是错误的。在 helpset xml 的大多数示例中,标签的顺序是错误的,如果将其与 dtd 进行比较,您会注意到元素必须位于元素的末尾,而不是像大多数示例那样位于开头。第 2 步和第 3 步是众所周知的,但第 1 步在任何地方都不可见。

回顾一下:解决方案是(1)将<presentation>元素放在正确的位置,(2)添加一个<image>元素,(3)在地图文件中声明它。

互联网上不起作用的模

  • 从帮助集中请求代理时添加演示文稿名称。
  • 从代理获取帧不再起作用,API 已更改。
于 2011-06-25T11:41:51.217 回答
0

创建一个名为 Help 的类和一个名为 setIconImage(String IconPath) 的公共/受保护方法,该方法在您的类(Help)中接受一个字符串参数。

注意:您的帮助类是您调用(初始化)JavaHelp API 的类。

在 setIconImage() 方法中复制并粘贴以下代码:

frame.setIconImage(new ImageIcon(getClass().getResource(imagePath)).getImage());

IE

public void setIconImage(String imagePath)
{
   frame.setIconImage(new ImageIcon(getClass().getResource(imagePath)).getImage());
}

现在您可以从另一个类调用您的帮助类。

例子

调用类:

Help help = new Help();
help.setIconImage("/path_to_your_icon_image/myHelpFrameIcon_45x45.png");

帮助类:

public class Help{

 JHelp helpViewer = null;   
 JFrame frame;

 public Help(){
   try
    {
  ClassLoader cl = Help.class.getClassLoader();
      URL url = HelpSet.findHelpSet(cl, "jhelpset.hs");
      helpViewer = new JHelp(new HelpSet(cl, url));
      helpViewer.setCurrentID("Simple.Introduction");
} catch (Exception e) 
    {
  System.err.println("API Help Set not found");
    }

   frame = new JFrame();
   frame.setSize(800,700);
   frame.getContentPane().add(helpViewer);
   frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
   frame.setVisible(true);

  }

  public void setIconImage(String imagePath){
   frame.setIconImage(new ImageIcon(getClass().getResource(imagePath)).getImage());
  }

  public static void main(String args[]){
    java.awt.EventQueue.invokeLater(new Runnable() {
        @Override
        public void run()
        {
            new Help();
        }
    });
   }

}    

结束!玩得开心 :)

于 2013-11-07T08:27:14.647 回答