如何設置JavaHelp Window
的JFrame Icon
(外部JFrame
的左上角)。我知道如何設置類別和主題Images
(toc.xml),但我沒有成功設置JFrame Icon
。JavaHelp框架圖標
我可以通過查找框架並設置圖標以編程方式執行此操作,但我正在尋找一種使用JavaHelp配置文件以聲明方式執行此操作的方法。
如何設置JavaHelp Window
的JFrame Icon
(外部JFrame
的左上角)。我知道如何設置類別和主題Images
(toc.xml),但我沒有成功設置JFrame Icon
。JavaHelp框架圖標
我可以通過查找框架並設置圖標以編程方式執行此操作,但我正在尋找一種使用JavaHelp配置文件以聲明方式執行此操作的方法。
在谷歌上最多的答案是明顯錯誤的。在helpset xml的大多數示例中,標記的順序都是錯誤的,如果將它與dtd進行比較,您會注意到元素必須位於元素的末尾,而不是像大多數示例那樣位於開頭。步驟2和步驟3是衆所周知的,步驟1在任何地方都不可見。 (1)將<presentation>
元素放在正確的位置,(2)添加一個<image>
元素,(3)在地圖文件中聲明它。
模因是不工作在互聯網上:
創建一個名爲Help的類和一個名爲setIconImage(String IconPath)的public/protected方法,該方法接受類(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();
}
});
}
}
完成!玩得開心:)
是你的意思http://download.oracle.com/javase/6/docs/api/javax/swing/JFrame.html#setIconImage%28java.awt.Image%29 – mKorbel
我編輯了你的文章,請回復,如果不是... – mKorbel
@mKorbel:嗯,我不太確定它是一個Swing的名聲,我用術語'框架'來表示一般意義上的框架,而不必明確地表達關於類型。如果你確定它是一個Swing框架,那麼它的編輯是可以的。 –