如何将图标设置为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());
我正在使用下面的工具类来设置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
。
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返回你需要的图标它是一个“快速“的方式来做一个图标,对我来说是有帮助的,因为它是一行代码* /