如何在JFrame中更改java图标 [英] How to change java icon in a JFrame

查看:103
本文介绍了如何在JFrame中更改java图标的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Ok so I've been researching this one quiet a bit. I am fairly new to java but thought that this one would be easy. Ive tried just about every way that has been answered on this site and still no luck, and usually when I look here I am able to find a answer that fits what I am looking for. Does anyone know how to change the Java icon in the top corner of the JFrame. I'm pretty positive that its not my file path either because all my images are in the same folder and they all work, this is the only one that I can't seem to get to work.

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

This is the first part my code for the main menu of my program, everything works except when i try to add the icon image. The code I've entered below does not have anything in it for the JFrame IconImage, I removed it since it didn't work. So if there is someone who knows how to get it working with this code that would be highly appreciated, thank you very much in advanced!

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);

}


推荐答案

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

I have an answer for you. First, make sure that the images are in a folder, not a package. Next, insert this line of code:

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

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

This code gets the image from the class path, and returns it as a image icon, and then it sets it. This should add the image icon to the application. If it doesn't, then tell me.

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

After you told me that that didn't work then I decided to take a second crack at it... First, put your images into a completely separate folder. I usually call this /res. Next, put your image in there. Now, for loading I took a completely different route. I decided to use ImageIO instead of default loading. To load the image, you use this code:

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

ImageIO 工作了更好地加载图像。如果这仍然不起作用,那么请告诉我。

ImageIO works a lot better for loading images. If this still doesn't work then please tell me.

如果你想把它作为JAR导出,那么把一个文件夹和你在程序中使用的文件名相同与JAR相同的目录。

If you want to export this as a JAR then put a folder the same name as you used in the program in the same directory as the JAR.

这篇关于如何在JFrame中更改java图标的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆