私はこの方法を試しましたが、変わらなかったのですか?
ImageIcon icon = new ImageIcon("C:\\Documents and Settings\\Desktop\\favicon(1).ico");
frame.setIconImage(icon.getImage());
.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を使用することも考えられるかもしれませんが。
Srcフォルダー以外の別のフォルダーに画像を入れてみてください。次に、ImageIOを使用して画像を読み込みます。次のようになります。
frame.setIconImage(ImageIO.read(new File("res/icon.png")));
最後に、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は機能します。
これにより、最終的にプロジェクトをビルドした後でもアイコンが表示されます。
これは私のために動作します。
frame.setIconImage(Toolkit.getDefaultToolkit().getImage(".\\res\\icon.png"));
エクスポートjarファイルの場合、ビルドパスを設定してresフォルダーを含め、次のコードを使用する必要があります。
URL url = Main.class.getResource("/icon.png");
frame.setIconImage(Toolkit.getDefaultToolkit().getImage(url));
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();
}
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"));
Maven
を使用し、次のコマンドを入力して作成されたプロジェクトの構造があります。
mvn archetype:generate
必要なファイルicon.png
は、Mavenプロジェクトのsrc/main/resources
フォルダーに配置する必要があります。
次に、プロジェクト内で次の行を使用できます。
ImageIcon img = new ImageIcon(getClass().getClassLoader().getResource("./icon.png"));
setIconImage(img.getImage());
コード内のこれらの数行のコードをコピーし、「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());
次のユーティリティクラスを使用して、 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.jpg
はmyproject\src\main\resources
に配置する必要があります。