我试过这种方式,但它没有改变?如何设置图标为JFrame
ImageIcon icon = new ImageIcon("C:\\Documents and Settings\\Desktop\\favicon(1).ico");
frame.setIconImage(icon.getImage());
我试过这种方式,但它没有改变?如何设置图标为JFrame
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作为几种尺寸的图标。
即使图像路径是正确的,我也会收到空指针异常 – vijay 2013-03-27 12:48:05
延迟响应:图标应与您调用getClass()的类位于同一个jar中,并且路径使用'/' 。 – 2013-04-16 13:09:59
尝试将您的图像放在src文件夹以外的单独文件夹中。然后,使用ImageIO加载您的图像。它应该看起来像这样:
frame.setIconImage(ImageIO.read(new File("res/icon.png")));
上面的答案不适用于我,但这是有效的! – trinity420 2016-07-05 19:25:03
最后,我发现设置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(new ImageIcon(URL).getImage());
/* 框架的JFrame 的setIcon方法,在你的框架 新的ImageIcon设置一个新的图标使类的一个新实例的(所以你可以从你给的网址一个新的图标) 最后的getImage返回你需要 这是一个“快”的方式,使一个图标,该图标对我来说是有帮助的,因为它的代码 */
请为您的代码添加一些说明,具体说明它的作用,以及它如何解决问题。 – 2014-04-21 20:37:30
勇可以试试下面的方法,
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());
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
中。
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));
在文件路径中似乎存在一些问题。如果未在指定路径中找到图像,将设置默认图像图标。 – prasanth 2013-03-27 11:24:11