Значок рамки JavaHelp

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

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

2 ответа

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

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

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

  • Добавление имени презентации при запросе брокера из справочной службы.
  • Получение фрейма у брокера больше не работает, API изменился.

Создайте класс с именем 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();
        }
    });
   }

}    

Конец! Повеселись:)

Другие вопросы по тегам