如何将图标设置为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几个尺寸的图标。

尝试将您的图像放在您的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文件创build的主文件夹,例如

 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。

这样,即使在最终构build项目之后,你的图标也会在那里。

这里是我用来设置JFrame的图标的代码

 import javax.imageio.ImageIO; import java.io.File; import java.io.IOException; try{ setIconImage(ImageIO.read(new File("reshttp://img.dovov.comicons/appIcon_Black.png"))); } catch (IOException e){ e.printStackTrace(); } 

你可以试试下面的方法,

 myFrame.setIconImage(Toolkit.getDefaultToolkit().getImage("Icon.png")); 

只需在代码中复制这几行代码,并将图像replace为“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()); 

我正在使用下面的工具类来设置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

当使用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文件,您需要configuration构buildpath以包含res文件夹并使用以下代码。

  URL url = Main.class.getResource("/icon.png"); frame.setIconImage(Toolkit.getDefaultToolkit().getImage(url)); 
 frame.setIconImage(new ImageIcon(URL).getImage()); 

/ *框架是JFrame的setIcon方法,在你的框架上设置一个新的图标新的ImageIcon做一个类的新实例(所以你可以从你给的URL得到一个新的图标)getImage返回你需要的图标它是一个“快速“的方式来做一个图标,对我来说是有帮助的,因为它是一行代码* /