【发布时间】:2013-03-17 11:00:10
【问题描述】:
我试过这种方式,但没有改变?
ImageIcon icon = new ImageIcon("C:\\Documents and Settings\\Desktop\\favicon(1).ico");
frame.setIconImage(icon.getImage());
【问题讨论】:
-
您的文件路径似乎有问题。如果在指定的路径中找不到图像,将设置默认图像图标。
我试过这种方式,但没有改变?
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 来处理多种尺寸的图标。
【讨论】:
/ 区分大小写。
ico 文件。切换到 PNG 并且成功了!
尝试将图像放在 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) 将 Image 放在创建所有表单和 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(new ImageIcon(URL).getImage());
/* 框架是 JFrame setIcon 方法,在你的框架上设置一个新图标 new ImageIcon 创建一个新的类实例(这样您就可以从您提供的 url 中获取一个新图标) 最后 getImage 返回你需要的图标 这是制作图标的“快速”方式,对我来说很有帮助,因为它是一行代码 */
【讨论】:
你可以试试下面的方法,
myFrame.setIconImage(Toolkit.getDefaultToolkit().getImage("Icon.png"));
【讨论】:
这是我用来设置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();
}
【讨论】:
只需将这几行代码复制到您的代码中,并将“imgURL”替换为图像(您要设置为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() : "";
}
}
}
所以使用 this 变得像调用一样简单
WindowUtilities.setIconImage(this);
在你的类中某个地方扩展了JFrame。
例如,当使用Maven 时,Icon.jpg 必须位于myproject\src\main\resources。
【讨论】:
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);
}
}'
这对我有用。
【讨论】:
这对我有用。
frame.setIconImage(Toolkit.getDefaultToolkit().getImage(".\\res\\icon.png"));
对于导出的jar文件,需要配置构建路径包含res文件夹,使用如下代码。
URL url = Main.class.getResource("/icon.png");
frame.setIconImage(Toolkit.getDefaultToolkit().getImage(url));
【讨论】:
我用Maven,有项目的结构,是输入命令创建的:
mvn archetype:generate
所需的文件icon.png必须放在你的maven项目的src/main/resources文件夹中。
然后您可以在项目中使用下一行:
ImageIcon img = new ImageIcon(getClass().getClassLoader().getResource("./icon.png"));
setIconImage(img.getImage());
【讨论】:
我的项目代码如下:
private void setIcon() {
setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/slip/images/cage_settings.png")));
}
【讨论】: