将图标设置为swing JFrame会冻结应用程序

时间:2016-12-09 13:30:17

标签: java swing

我的问题很简单:当我运行下面的Java程序时,没有任何反应。窗口没有打开。当我删除"开始图标集"之间的界限时和"图标集的结尾" (设置窗口图标),一切正常。我想补充一点,ImageIO.read()获取的图像文件指针不为空,不会导致任何异常。在使用Java Hotspot 1.8.0的Linux系统(LinuxMint 17.2)上运行它。

import java.awt.Image;
import java.io.IOException;

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

import elf.swing.View;

public class IconTest {

    public static void main(String[] args) {
        JFrame f = new JFrame("ok");
        f.getContentPane().add(new JLabel("How are you?"));

        // begin of icon set
        Image im;
        try {
            im = ImageIO.read(View.class.getResourceAsStream("/pix/copy.png"));
            if(im != null) {
                java.util.List<java.awt.Image> imgs = new java.util.LinkedList<java.awt.Image>();
                imgs.add(im.getScaledInstance(16, 16, 0));
                f.setIconImages(imgs);
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        // end of icon set

        f.pack();
        f.setVisible(true);
    }

}

所以,求求你的帮助。

0 个答案:

没有答案