Значок рамки 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();
}
});
}
}
Конец! Повеселись:)