web-dev-qa-db-ja.com

アイコンをJFrameに設定する方法

私はこの方法を試しましたが、変わらなかったのですか?

ImageIcon icon = new ImageIcon("C:\\Documents and Settings\\Desktop\\favicon(1).ico");
frame.setIconImage(icon.getImage());
22
vijay

.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を使用することも考えられるかもしれませんが。

36
Joop Eggen

Srcフォルダー以外の別のフォルダーに画像を入れてみてください。次に、ImageIOを使用して画像を読み込みます。次のようになります。

frame.setIconImage(ImageIO.read(new File("res/icon.png")));
6
user2675678

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

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

1)このコードをjframe WindowOpenedイベントに配置します

2)フォームとJavaファイルが作成されるメインフォルダに画像を置きます。

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は機能します。

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

4

これは私のために動作します。

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

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

    URL url = Main.class.getResource("/icon.png");
    frame.setIconImage(Toolkit.getDefaultToolkit().getImage(url));
2
Joe

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();
  }
1
Craig Cantrell
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);
    }
}'

これは私のために動作します。

ヨンは次の方法を試すことができます、

myFrame.setIconImage(Toolkit.getDefaultToolkit().getImage("Icon.png"));
0
Nilesh Jadav

Mavenを使用し、次のコマンドを入力して作成されたプロジェクトの構造があります。

mvn archetype:generate

必要なファイルicon.pngは、Mavenプロジェクトのsrc/main/resourcesフォルダーに配置する必要があります。

次に、プロジェクト内で次の行を使用できます。

ImageIcon img = new ImageIcon(getClass().getClassLoader().getResource("./icon.png"));
setIconImage(img.getImage());
0
fedotsoldier

コード内のこれらの数行のコードをコピーし、「imgURL」をImage(jframeアイコンとして設定する)の場所に置き換えてください。

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
Asad Bashir

次のユーティリティクラスを使用して、 JFrame および JDialog インスタンスのアイコンを設定しています。

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
BullyWiiPlaza