如何在JFrame中更改java图标

好的,所以我一直在研究这个安静一点。 我对java很新,但认为这个很容易。 我已经尝试了几乎所有在这个网站上回答的方式,但仍然没有运气,通常当我看到这里时,我能找到一个适合我所寻找的答案。 有谁知道如何更改JFrame顶角的Java图标。 我非常肯定它不是我的文件路径,因为我的所有图像都在同一个文件夹中并且它们都工作,这是我唯一无法工作的。

这是我的程序主菜单代码的第一部分,一切正常,除非我尝试添加图标图像。 我在下面输入的代码中没有任何内容用于JFrame IconImage,我将其删除,因为它不起作用。 因此,如果有人知道如何使用此代码,我将非常感谢,非常感谢您提前!

public class MainFrame { private MyPanel main; private MyPanel2 create; private MyPanel3 update; private MyPanel4 find; JFrame frame = new JFrame("Main Menu:"); public void displayGUI() { frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel contentPane = new JPanel(); contentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); contentPane.setLayout(new CardLayout()); main = new MyPanel(contentPane, this); create = new MyPanel2(contentPane); update = new MyPanel3(contentPane); find = new MyPanel4(contentPane); contentPane.add(main, "Main Menu"); contentPane.add(create, "Create Part"); contentPane.add(update, "Update Part"); contentPane.add(find, "Find Part"); frame.setLocation(200, 200); frame.setSize(700, 580); frame.setContentPane(contentPane); frame.setVisible(true); } 

我有一个答案给你。 首先,确保图像位于文件夹中,而不是包中。 接下来,插入以下代码行:

 Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("path/to/image.png")); ImageIcon icon = new ImageIcon( ); setIconImage(icon.getImage()); 

此代码从类路径获取图像,并将其作为图像图标返回,然后设置它。 这应该将图像图标添加到应用程序。 如果没有,请告诉我。

编辑:在你告诉我那不起作用之后,我决定对它进行第二次破解……首先,将你的图像放入一个完全独立的文件夹中。 我通常称之为/ res。 接下来,将图像放在那里。 现在,为了装载我采取了完全不同的路线。 我决定使用ImageIO而不是默认加载。 要加载图像,请使用以下代码:

 try { frame.setIconImage(ImageIO.read(new File("res/icon.png"))); } catch (IOException exc) { exc.printStackTrace(); } 

ImageIO可以更好地加载图像。 如果这仍然不起作用,请告诉我。

如果要将其导出为JAR,则将与您在程序中使用的名称相同的文件夹放在与JAR相同的目录中。

例如,在NetBeans项目中,在src文件夹中创建资源文件夹。

把你的图像(jpg,…)放在那里。

无论您使用ImageIO还是Toolkit (包括getResource),都必须在图像文件的路径中包含一个前导/:

 Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/resources/agfa_icon.jpg")); setIconImage(image); 

如果此代码位于JFrame类中,则图像将作为标题栏中的图标添加到框架中。

这对我来说非常好。 只需在创建JFrame后添加即可。

 try { Image image = new ImageIcon("/icons/image.jpg").getImage(); frame.setIconImage(image); }catch(Exception e){ System.out.println("Application icon not found"); } 
  1. 首先将图像图标(fav.png)粘贴到同一个包中,
  2. JFrame的 构造函数中编写以下代码:

setIconImage(Toolkit.getDefaultToolkit()的getImage(的getClass()的getResource( “fav.png”)));

注意: – fav.png是图标的名称

 this.setIconImage(new ImageIcon(getClass().getResource("/iconsfolder/iconsname.jpg")).getImage()); // sets the Global icon for the system 

在此代码之后尝试此代码:

 public void displayGUI() {