如何更改Java中的默认应用程序图标?

时间:2008-10-16 18:58:37

标签: java icons

我正在使用NetBeans,尝试将熟悉的Java咖啡杯图标更改为我保存在jar文件的资源目录中的png文件。我发现许多不同的网页声称他们有解决方案,但到目前为止他们都没有工作。

这是我现在所拥有的(省略了try-catch块):

URL url = new URL("com/xyz/resources/camera.png");
Toolkit kit = Toolkit.getDefaultToolkit();
Image img = kit.createImage(url);
getFrame().setIconImage(img);

包含此代码的类位于 com.xyz 包中,如果这有任何区别。该类还扩展了JFrame。此代码在第一行抛出MalformedUrlException。

任何人都有一个有效的解决方案吗?

10 个答案:

答案 0 :(得分:70)

java.net.URL url = ClassLoader.getSystemResource("com/xyz/resources/camera.png");

路径前面可能需要或者不需要'/'。

答案 1 :(得分:13)

您可以简单地转到Netbeans,在设计视图中,转到JFrame属性,选择图标图像属性,选择设置表单的iconImage属性,使用:“自定义代码”,然后在{{1函数放下以下代码:

Form.SetIconImage()

不要忘记导入:

Toolkit.getDefaultToolkit().getImage(name_of_your_JFrame.class.getResource("image.png"))

在源代码中!

答案 2 :(得分:4)

或者将图像放在相对于类的位置,并且不需要字符串本身中的所有包/路径信息。

com.xyz.SomeClassInThisPackage.class.getResource( "resources/camera.png" );

这样,如果将类移动到另一个包,则不必查找所有字符串,只需移动类及其资源目录。

答案 3 :(得分:4)

尝试

之后的写作
initcomponents();

setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("Your image address")));

答案 4 :(得分:3)

    /** Creates new form Java Program1*/
    public Java Program1() 


    Image im = null;
    try {
    im = ImageIO.read(getClass().getResource("/image location"));
    } catch (IOException ex) {
    Logger.getLogger(chat.class.getName()).log(Level.SEVERE, null, ex);
    }
    setIconImage(im);

这就是我在netbeans中使用的GUI,它运行得很好

答案 5 :(得分:1)

在扩展javax.swing.JFrame使用方法setIconImage的类中。

this.setIconImage(new ImageIcon(getClass().getResource("/resource/icon.png")).getImage());

答案 6 :(得分:1)

你应该定义各种大小的图标,像Ubuntu这样的Windows和Linux发行版在任务栏和Alt-Tab中使用不同的图标。

<div class="right">
  <div class="headbox">
    <h3>Visit Us</h3>
  </div>
  <div class="list">
    <ul>
      <li><a href="#">Home</a>
      </li>
      <li><a href="#">Hours</a>
      </li>
      <li><a href="#">Plan</a>
      </li>
      <li><a href="#">Directions</a>
      </li>
    </ul>
  </div>
</div>

答案 7 :(得分:0)

示例:

URL imageURL = this.getClass().getClassLoader().getResource("Gui/icon/report-go-icon.png");
ImageIcon iChing = new ImageIcon("C:\\Users\\RrezartP\\Documents\\NetBeansProjects\\Inventari\\src\\Gui\\icon\\report-go-icon.png");      
btnReport.setIcon(iChing); 
System.out.println(imageURL);

答案 8 :(得分:0)

内部框架构造函数

try{    
       setIconImage(ImageIO.read(new File("./images/icon.png")));   
   }
catch (Exception ex){
       //do something
   }

答案 9 :(得分:0)

您可以尝试这个,它很好用:

Uri