[英]How to resize an image set as an icon in java netbeans IDE 8.1
[英]Set Icon Image in Java
我一直在到处搜索如何在 Java 中设置图标图像,但它总是最终不起作用或给我错误。 在这里,在我的主要方法中,我放置了代码:
public static void main(String[] args) {
Game game = new Game();
// This right here!
game.frame.setIconImage(new ImageIcon("/Icon.png").getImage());
game.frame.setResizable(false);
game.frame.setTitle(title);
game.frame.add(game);
game.frame.pack();
game.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
game.frame.setLocationRelativeTo(null);
game.frame.setVisible(true);
}
我的图像路径是“%PROJECT%/res/Image.png”,我只是使用 /Image.png 继续访问我的 res 文件夹(就像我在项目的其他部分所做的那样)我什至已经转换了它进入一个图标文件,并尝试过,但它决定的只是使用默认的 Java 图标。
您的问题通常是由于在错误的位置查找图像,或者如果您的类和图像位于 jar 文件中,则查找文件不存在的文件。 我建议你使用资源来解决第二个问题。
例如,
// the path must be relative to your *class* files
String imagePath = "res/Image.png";
InputStream imgStream = Game.class.getResourceAsStream(imagePath );
BufferedImage myImg = ImageIO.read(imgStream);
// ImageIcon icon = new ImageIcon(myImg);
// use icon here
game.frame.setIconImage(myImg);
为此使用默认工具包
frame.setIconImage(Toolkit.getDefaultToolkit().getImage("Icon.png"));
我用这个:
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.InputStream;
public class IconImageUtilities
{
public static void setIconImage(Window window)
{
try
{
InputStream imageInputStream = window.getClass().getResourceAsStream("/Icon.png");
BufferedImage bufferedImage = ImageIO.read(imageInputStream);
window.setIconImage(bufferedImage);
} catch (IOException exception)
{
exception.printStackTrace();
}
}
}
只需将名为Icon.png
的图像放在资源文件夹中,并在从Window
家族(如JFrame
或JDialog
扩展类的类中使用自身作为参数调用上述方法:
IconImageUtilities.setIconImage(this);
下面的方法在 Java 7 及更高版本上运行良好。
JFrame frame = new JFrame("MyAPP");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try {
frame.setIconImage(ImageIO.read(YourClass.class.getResourceAsStream("/icon.png")));
} catch (IOException ex) {
ex.printStackTrace();
}
frame.setVisible(true);
将您的icon.png
图像文件icon.png
到/src/main/resources
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.