24

私はこのように試しましたが、それは変わりませんでしたか?

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

12 に答える 12

44

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

于 2013-03-27T11:24:37.450 に答える
7

srcフォルダーの外にある別のフォルダーに画像を配置してみてください。次に、ImageIOを使用して画像を読み込みます。次のようになります。

frame.setIconImage(ImageIO.read(new File("res/icon.png")));
于 2013-08-27T00:18:32.507 に答える
4

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

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

1)このコードをjframeWindowOpenedイベントに入れます

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

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

于 2013-10-27T20:12:58.550 に答える
2

これは私のために働きます。

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

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

    URL url = Main.class.getResource("/icon.png");
    frame.setIconImage(Toolkit.getDefaultToolkit().getImage(url));
于 2017-11-08T18:13:54.127 に答える
1

ヨンは次のように試すことができます、

myFrame.setIconImage(Toolkit.getDefaultToolkit().getImage("Icon.png"));
于 2014-09-04T06:42:10.127 に答える
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();
  }
于 2015-11-26T07:02:55.837 に答える
0

コード内のこれらの数行のコードをコピーし、「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());
于 2016-10-22T09:49:30.617 に答える
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ます。

たとえば、を使用する場合はIcon.jpgに配置する必要があります。myproject\src\main\resourcesMaven

于 2016-11-07T13:41:45.533 に答える
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);
    }
}'

これは私のために働きます。

于 2017-04-19T06:57:46.130 に答える
0

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

mvn archetype:generate

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

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

ImageIcon img = new ImageIcon(getClass().getClassLoader().getResource("./icon.png"));
setIconImage(img.getImage());
于 2019-06-20T23:18:47.567 に答える
0

私のプロジェクトコードは次のとおりです。

private void setIcon() {
       setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/slip/images/cage_settings.png")));

    }
于 2020-02-10T11:26:24.257 に答える
-1
frame.setIconImage(new ImageIcon(URL).getImage());

/*フレームはJFramesetIconメソッドであり、フレームに新しいアイコンを設定します。新しいImageIconは、クラスの新しいインスタンスを作成します(指定したURLから新しいアイコンを取得できるようにします)。最後に、getImageは必要なアイコンを返します。アイコンを作成するための「高速」な方法です。1行のコードであるため、私にとっては便利です* /

于 2014-04-21T20:11:08.447 に答える