Значок рамки JavaHelp - PullRequest
1 голос
/ 25 июня 2011

Как мне установить JFrame Icon (вверху слева от внешнего JFrame) JavaHelp Window. Я знаю, как установить категорию и тему Images (toc.xml), но мне не удается установить JFrame Icon.

Я мог бы сделать это программно, ища фрейм и установив значок, но я ищу способ сделать это декларативно, используя файлы конфигурации JavaHelp.

Ответы [ 2 ]

1 голос
/ 25 июня 2011

Большинство ответов на Google просто неверны. В большинстве примеров справочного набора xml порядок тегов неправильный, если вы сравните его с dtd, вы заметите, что элемент должен находиться в конце элемента, а не в начале, как это делает большинство примеров. Шаги 2 и 3 хорошо известны, это шаг 1, который нигде не виден.

Напомним: решение состоит в том, чтобы (1) поместить элемент <presentation> в правильное местоположение, (2) добавить элемент <image> и (3) также объявить его в файле карты.

мемы в интернете, которые не работают:

  • Добавление названия презентации при запрашивая брокера из helpset.
  • Получение кадра из брокер больше не работает, API изменилось.
0 голосов
/ 07 ноября 2013

Создайте класс с именем Help и открытый / защищенный метод setIconImage (String IconPath), который принимает строковый параметр внутри вашего класса (Help).

Примечание. Класс справки - это тот, где вы вызываете (инициализируете) свой JavaHelp API.

Внутри вашего метода setIconImage () скопируйте и вставьте следующий код:

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

т.е.

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

}    

Готово! Веселитесь :) 1023 *

...