2013-03-27 15 views
12

この方法で試しましたが、変更されませんでしたか?アイコンをJFrameに設定する方法

+0

ファイルパスに問題があるようです。指定されたパスにイメージが見つからない場合、デフォルトイメージアイコンが設定されます。 – prasanth

答えて

24

.pngファイルを使用することをお勧めします。 .icoはWindows固有のものです。そして、ファイルを使用しない方が良いですが、クラスリソース(アプリケーションのjarファイルにパックすることができます)。

URL iconURL = getClass().getResource("/some/package/favicon.png"); 
// iconURL is null when not found 
ImageIcon icon = new ImageIcon(iconURL); 
frame.setIconImage(icon.getImage()); 

あなたも、いくつかのサイズのアイコンのためのsetIconImagesを使用するのではと思うかもしれないけど。

+0

画像のパスが正しくても、nullポインタの例外をいつも受け取っています – vijay

+0

遅い応答:アイコンはgetClass()を呼び出すクラスと同じjarにあり、パスは '/'で大文字と小文字を区別します。 。 –

4

srcフォルダの外にある別のフォルダに画像を置いてみてください。次に、ImageIOを使用してイメージをロードします。これは次のようになります:

frame.setIconImage(ImageIO.read(new File("res/icon.png"))); 
+0

上記の答えは私のためには機能しませんでしたが、これは機能します! – trinity420

3

最後に、jframeアイコンを設定する際の主な問題が見つかりました。ここに私のコードです。それは他のコードに似ていますが、ここでゲームを気にすることはほとんどありません。

this.setIconImage(new ImageIcon(getClass().getResource("Icon.png")).getImage()); 

1)フォームとJavaのすべてのファイルなどに作成されている場合、メインフォルダ内の画像を入れたJFrame WindowOpenedイベント

2)でこのコードを入れて

src\ myproject\ myFrame.form 
src\ myproject\ myFrame.java 
src\ myproject\ OtherFrame.form 
src\ myproject\ OtherFrame.java 
src\ myproject\ Icon.png 

3)と、ファイルの名前はicon.pngとは動作しますが、icon.pngのではないでしょうで大文字と小文字が区別されることが最も重要。

このようにして、最終的にプロジェクトをビルドした後もアイコンが表示されます。

-1
frame.setIconImage(new ImageIcon(URL).getImage()); 

/* フレームは、JFrameの setIcon方法である、で (そう、あなたが与えたURLから新しいアイコンを取得することができます)クラスの新しいインスタンスを作成し、あなたのフレームで 新しいイメージアイコンを新しいアイコンを設定最後のgetImageは、それは、アイコンを作るために「速い」方法です、それはヨンは、以下の方法で試すことができますコード の1行*/

+1

コードの説明、具体的な内容、および問題の解決方法を追加してください。 –

0

あるので、私のためにそれが役に立つ、

myFrame.setIconImage(Toolkit.getDefaultToolkit().getImage("Icon.png")); 
あなたが を必要とするアイコンを返します。
1

は、ここで私はJFrame

import javax.imageio.ImageIO; 
import java.io.File; 
import java.io.IOException; 

    try{ 
    setIconImage(ImageIO.read(new File("res/images/icons/appIcon_Black.png"))); 
    } 
    catch (IOException e){ 
    e.printStackTrace(); 
    } 
0

のアイコンを設定するために使用するコードは、ちょうどあなたのコード内の数行のコードをコピーして、画像(あなたがjframeアイコンとして設定したい)場所で「imgURL」を置き換えています。

JFrame.setDefaultLookAndFeelDecorated(true); 

//Create the frame. 
JFrame frame = new JFrame("A window"); 

//Set the frame icon to an image loaded from a file. 
frame.setIconImage(new ImageIcon(imgURL).getImage()); 
0

私はJFrameJDialogインスタンスのアイコンを設定するには、次のユーティリティクラスを使用しています:

import java.awt.*; 
import java.io.IOException; 
import java.io.InputStream; 
import java.net.URISyntaxException; 
import java.util.Scanner; 

public class WindowUtilities 
{ 
    public static void setIconImage(Window window) 
    { 
     window.setIconImage(Toolkit.getDefaultToolkit().getImage(WindowUtilities.class.getResource("/Icon.jpg"))); 
    } 

    public static String resourceToString(String filePath) throws IOException, URISyntaxException 
    { 
     InputStream inputStream = WindowUtilities.class.getClassLoader().getResourceAsStream(filePath); 
     return toString(inputStream); 
    } 

    // http://stackoverflow.com/a/5445161/3764804 
    private static String toString(InputStream inputStream) 
    { 
     try (Scanner scanner = new Scanner(inputStream, "UTF-8").useDelimiter("\\A")) 
     { 
      return scanner.hasNext() ? scanner.next() : ""; 
     } 
    } 
} 

だから、これはどこかにあなたの内側

WindowUtilities.setIconImage(this); 

を呼び出すのと同じくらい簡単になり使用クラスはJFrameを拡張しています。

例えばMavenを使用する場合、Icon.jpgmyproject\src\main\resourcesに配置する必要があります。

0
public FaceDetection() { 
    initComponents(); 
    //Adding Frame Icon 
    try { 
     this.setIconImage(ImageIO.read(new File("WASP.png"))); 
    } catch (IOException ex) { 
     Logger.getLogger(FaceDetection.class.getName()).log(Level.SEVERE, null, ex); 
    } 
}' 

これは私のために働く。

1

これは私のために働く。

frame.setIconImage(Toolkit.getDefaultToolkit().getImage(".\\res\\icon.png")); 

エクスポートjarファイルの場合、resフォルダを含むようにビルドパスを設定し、次のコードを使用する必要があります。

URL url = Main.class.getResource("/icon.png"); 
    frame.setIconImage(Toolkit.getDefaultToolkit().getImage(url)); 
関連する問題