2011-06-25 3 views
1

JavaHelp WindowJFrame Icon(外側の一番左上、JFrame)を設定するにはどうすればよいですか?私はカテゴリとトピックImages(toc.xml)を設定する方法を知っていますが、私はJFrame Iconの設定を続行しません。JavaHelpフレームアイコン

フレームを探してアイコンを設定することで、プログラムで行うことができますが、JavaHelp設定ファイルを使用してこれを宣言的に行う方法を探しています。

+0

あなたは意味ですかhttp://download.oracle.com/javase/6/docs/api/javax/swing/JFrame.html#setIconImage%28java.awt.Image%29 – mKorbel

+0

あなたの投稿を編集しましたもしそうでなければ元に戻してください... – mKorbel

+0

@mKorbel:それはスイングの名声であるとは確信していません。私は、フレームという言葉を一般的な意味で明示する必要はありませんタイプ。それがスイングフレームであることが確かであれば、あなたの編集はOKです。 –

答えて

1

Googleのほとんどの回答は間違っています。 helpset xmlのほとんどの例では、タグの順序が間違っています。dtdと比較すると、ほとんどの例のように要素が要素の最後に来ることになります。ステップ2と3はよく知られていますが、ステップ1はどこにも表示されません。

要約すると、(1)<presentation>要素を正しい場所に置くこと、(2)<image>要素を追加すること、(3)マップファイルにwelと宣言することです。ない仕事をインターネット上

ミームは: ヘルプセットからブローカーを要求するときに

  • は、プレゼンテーションの名前を追加します。
  • ブローカーからフレームが取得されなくなったため、API が変更されました。
0

クラスとヘルプ(Help)と呼ばれるクラスを作成し、setIconImage(String IconPath)という名前のpublic/protectedメソッドを作成します。

注:ヘルプクラスは、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(); 
     } 
    }); 
    } 

}  

フィニッシュ!お楽しみください:)

関連する問題