How to set an icon to a JFrame when using createAn

2019-01-28 10:10发布

问题:

I am using a createAndShowGUI() method to create a JFrame. I am trying to set an icon, but when I run it in NetBeans, it doesn't show. However, when I run a .jar file (with the image in the same folder), then it works without a flaw.

private static void createAndShowGUI() {
    //Create and set up the window.
    JFrame game = new JFrame();
    game.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    game.setSize(198, 409);  
    game.setResizable(false);
    game.setTitle("Frame Title"); 
    ImageIcon img = new ImageIcon("Icon.png");
    game.setIconImage(img.getImage());
    game.setVisible(true);

}

Any ideas where the problem could be?

回答1:

When I run the above code with a test image, the icon is changed correctly. Add:

System.out.println(System.getProperty("user.dir"));

to the method to display the folder where the image should be located & copy it there if necessary.



回答2:

Why don't you make package like:

org.icon 

and add icons to that package.

To set icon use this:

ImageIcon img = new ImageIcon(Game.class.getResource("/org/Icon/NameOfIcon.png"));
game.setIconImage(img.getImage());

You program will have no problems to find an icon.