我该如何更改程序图标

时间:2011-09-19 22:46:49

标签: java icons

我尝试查找有关如何更改java中的程序图标的多个教程,但它们似乎都不起作用。我也想知道它是什么样的图像.ico或.png例如它必须是什么尺寸

2 个答案:

答案 0 :(得分:4)

我假设您使用的是JFrame,那么您需要setIconImage(java.awt.Image)

File/InputStream/URL x = ...
Image icon = ImageIO.read(x);
frame.setIconImage(icon);

图像文件格式无关紧要,只要ImageIO可以读取它(JPEG,GIF,PNG,TIFF,甚至BMP,如果真的非常必要)。

一个例子:

import java.net.URL;

import javax.imageio.ImageIO;
import javax.swing.JFrame;

public class Main {

    public static void main(final String[] args) throws Exception {
        JFrame frame = new JFrame("Custom Icon");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);

        // something off the Google Images front page
        final URL url = new URL("http://t3.gstatic.com/images?q=tbn:ANd9GcQbcDkaRcrbsYFUcE6Q7n56_LJr-r4mDqYTOTtPKG9J0MzZcV6V");
        frame.setIconImage(ImageIO.read(url));

        frame.setVisible(true);
    }

}

修改:如何获取图标的网址

您应该将图像文件(图标等)与源代码一起放入src文件夹中的子文件夹中,并将其作为“资源”访问。查看Java Tutorial中的How to use Icons,了解如何将URL对象获取到资源。

答案 1 :(得分:1)

我认为@Philipp非常清楚,x必须是FileInputStreamURL,而不是String你试过了。

现在,您还需要FrameJFrame才能拥有图标!

我认为这是在你的main方法中。 要创建框架,请尝试

JFrame frame=new JFrame();
frame.setVisible(true);

接着是@ Philipp的代码。

-

它刚刚发生在我身上,您可能意味着操作系统中程序快捷方式的图标。这不是在Java中完成的,而是在您的操作系统中完成的。除非你使用Java Web start