最近,在准备课题作业,想通过sokect编程来实现窗体小程序;实践过程中才发现无限难,不过,怀着拿学历和学位证的信心和毅力去完成这么个小玩意。
说正题,因为窗体默认是java图标,于是想实现自定义窗体的icon,通过ImageIO去读取文件的时候报错。
控制台报错:
javax.imageio.IIOException: Can't read input file! at javax.imageio.ImageIO.read(Unknown Source) at com.bomei.image.ImageUtils.pressImage(ImageUtils.java:41) at com.bomei.image.ImageUtils.main(ImageUtils.java:117)
刚开始用ImageIO直接读取File文件。JFrame f = new JFrame("WAR");
try {
Image img = ImageIO.read(this.getClass().getResource("/img/cwm02.png");
f.setIconImage(img);//icon
f.setBounds(300, 300, 360, 300);
f.setVisible(true);
f.setResizable(false);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} catch (IOException e) {
e.printStackTrace();
}
解决方法(很简单用流解析图片就行):
//1.绝对路径下指定并解析图片通过FileInputStream读取
String path = "E://Selenium/ChattingMe/src/main/com/tangsg/img/cwm02.png";
InputStream is=new FileInputStream(new File(path));
//2.项目工程根路径下解析图片通过FileInputStream读取
String path = "src/main/com/tangsg/img/cwm02.png";
InputStream is=new FileInputStream(new File(path));
//3.项目工程相对路径下解析图片通过ClassLoader读取
String path = "/com/tangsg/img/cwm02.png";
InputStream is = JFIconFir.class.getResourceAsStream(path);
Image img = ImageIO.read(is);
联系客服