2013-07-23 18 views
9

だから私はこれを少し静かに研究してきました。私はかなりJavaに新しいですが、これは簡単だろうと思った。 Iveはこのサイトで答えられてもまだ運がないあらゆる方法を試しました。通常はここを見ると、私が探しているものに合った答えを見つけることができます。誰もJFrameの上隅にあるJavaアイコンを変更する方法を知っていますか?私は非常に肯定的です。私のファイルパスではなく、すべての画像が同じフォルダに入っていて、すべてが機能しているからです。これは私が働くことができない唯一のものです。JFrameでJavaアイコンを変更するには

これは私のプログラムのメインメニューのコードの最初の部分です。アイコン画像を追加しようとしたとき以外はすべて動作します。私が下に入力したコードは、JFrame IconImageのためのものは何も持っていないので、動作しなかったので削除しました。だから、このコードを使って作業する方法を知っている人がいれば、非常に高く評価されます。

public class MainFrame 
{ 
private MyPanel main; 
private MyPanel2 create; 
private MyPanel3 update; 
private MyPanel4 find; 
JFrame frame = new JFrame("Main Menu:"); 

public void displayGUI() 
{ 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    JPanel contentPane = new JPanel(); 
    contentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); 
    contentPane.setLayout(new CardLayout()); 
    main = new MyPanel(contentPane, this); 
    create = new MyPanel2(contentPane); 
    update = new MyPanel3(contentPane); 
    find = new MyPanel4(contentPane); 
    contentPane.add(main, "Main Menu"); 
    contentPane.add(create, "Create Part"); 
    contentPane.add(update, "Update Part"); 
    contentPane.add(find, "Find Part"); 
    frame.setLocation(200, 200); 
    frame.setSize(700, 580); 
    frame.setContentPane(contentPane); 

    frame.setVisible(true); 

} 
+0

ポスト**関連**コードをのみ。フレームのアイコンが変更された部分をコードの壁を通して検索する必要はありません。次に、コードのこの関連部分が何をすると思われるか、そして代わりに何をするかを教えてください。 –

+0

これは、コードの一部であり、変更アイコンの部分です。コードを入力する方法はさまざまですが、これはJFrameのコードに変更アイコンのコードがないものです。 –

+0

あなたの最善の試みを見せて、何が起こるか教えてください。ヒント:http://docs.oracle.com/javase/6/docs/api/javax/swing/JFrame.html#setIconImage%28java.awt.Image%29、http://docs.oracle.com/javase/ 6/docs/api/javax/swing/ImageIcon.html#getImage%28%29、http://docs.oracle.com/javase/tutorial/uiswing/components/frame.html –

答えて

14

回答があります。まず、イメージがパッケージではなくフォルダにあることを確認します。次に、このコード行を挿入:

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("path/to/image.png")); 
ImageIcon icon = new ImageIcon(); 
setIconImage(icon.getImage()); 

このコードは、クラスパスから画像を取得し、画像アイコンとして返し、その後それを設定します。これにより、アプリケーションに画像アイコンが追加されます。それがなければ、教えてください。

編集:それがうまくいかないと私に言った後、私はそれに2番目の亀裂を取ることにしました... まず、完全に別のフォルダに画像を入れてください。私は通常この/ resと呼ぶ。次に、イメージをそこに置きます。今、私はまったく別のルートをとった。私はデフォルトの読み込みの代わりにImageIOを使うことにしました。

try { 
    frame.setIconImage(ImageIO.read(new File("res/icon.png"))); 
} 
catch (IOException exc) { 
    exc.printStackTrace(); 
} 

ロード・イメージのためにたくさん良い作品ImageIO:画像をロードするには、このコードを使用します。それでも動作しない場合は教えてください。

これをJARとしてエクスポートする場合は、JARと同じディレクトリにあるプログラムで使用したのと同じ名前のフォルダを作成します。

+0

これは私のために働かなかった、私はそれがパッケージではなく、フォルダにあったことを確認した –

+0

私はコードでそれを置く必要があります私はそれを試してみましたframe.setDefaultCloseOperation(JFrame .EXIT_ON_CLOSE); –

+0

私はframe.setDefaultCloseOperationの直前にコード行を持っていました。この方法で、私たちはアイコンが何かが起こる前に設定されていることを知っています –

2

たとえば、NetBeansプロジェクトでは、srcフォルダにresourcesフォルダを作成します。

画像を(jpg、...)に入れてください。あなたは(のgetResource含む)ImageIOまたはToolkitを使用するかどうか

、 イメージファイルへのパスに/大手を含める必要があります。

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/resources/agfa_icon.jpg")); 
setIconImage(image); 

このコードは、あなたのJFrameクラス内にある場合は、画像が追加されましたタイトルバーのアイコンとしてフレームに追加します。

2

これはかなりうまく動作します。 JFrameを作成した後でこれを追加してください。

try { 
    Image image = new ImageIcon("/icons/image.jpg").getImage(); 
    frame.setIconImage(image); 
}catch(Exception e){ 
    System.out.println("Application icon not found"); 
} 
+1

コードのみの回答は避けてください。問題の理由、解決策、およびコード例(この例)については、常に説明する必要があります。人を助けるために時間をかけなさい。 –

0
  1. 自分のイメージアイコン(FAVを貼り付けます。最初の同じパッケージ内PNG)、JFrameのコンストラクタ
  2. 書き込み以下のコード:

setIconImage(Toolkit.getDefaultToolkit()のgetImage(のgetClass()のgetResource(「FAV。 png "))));

注: - アイコンの名前がをさfav.png

0
this.setIconImage(new ImageIcon(getClass().getResource("/iconsfolder/iconsname.jpg")).getImage()); 
      // sets the Global icon for the system 

このコードの後に​​入れ、このコードを試してみてください。

public void displayGUI() 
{ 
関連する問題