最近在做一个图片整理软件,遇到一个比较坑的问题,在GUI中event事件中加载图片第一次加载的图片必然没有进来,第二次却可以完成图片加载,加载方式是通过file获取到路径,使用toolkit中的getimage(路径)的方法加载,可是第一次永远都是创建的图片高度宽度均为-1,对象非空,当第二次点击按钮时没有出现此类问题,初步怀疑是不是由于GUI的的线程加载有问题,还是toolkit内部的getimage方法是异步实现的?求高手解答,关注跪谢。
调试欢乐多
File path,filename;
int yn=filechoser.showOpenDialog(this);
if(yn==JFileChooser.APPROVE_OPTION)
{
path=filechoser.getCurrentDirectory();
filename=filechoser.getSelectedFile();
ImageIcon icon=new ImageIcon(filename.toString());
icon.setImage(icon.getImage().getScaledInstance(piclab.getWidth(), piclab.getHeight(), Image.SCALE_DEFAULT));
piclab.setIcon(icon);
}
我自己是这样写的,图片可按照比例缩放,但好像没有遇到你所说的问题
执行完toolkit的getImage方法后图片并没有完全加载到内存中去
所以不能立即显示
通常是在后面用一个循环来显示图片
然后使用MediaTracker实现延时加载....
可以看我博客!