使用MediaTracker的Java读写图片
最近,我编写了一个代码(使用jfileChooser)获取图像,然后将其保存为硬盘上的新图片,这很有效。但当我尝试在其他计算机或系统上使用此代码时,它不起作用。MediaTracker总是包含一个错误,但我无法显示出出错的可读信息,我也不知道如何解决这个问题(但我不想再次阅读此源代码) 非常感谢你提出的任何可能出错的想法使用MediaTracker的Java读写图片,java,swing,Java,Swing,最近,我编写了一个代码(使用jfileChooser)获取图像,然后将其保存为硬盘上的新图片,这很有效。但当我尝试在其他计算机或系统上使用此代码时,它不起作用。MediaTracker总是包含一个错误,但我无法显示出出错的可读信息,我也不知道如何解决这个问题(但我不想再次阅读此源代码) 非常感谢你提出的任何可能出错的想法 JFileChooser jfc = new JFileChooser(); jfc.setCurrentDirectory(new File("C:\\"))
JFileChooser jfc = new JFileChooser();
jfc.setCurrentDirectory(new File("C:\\"));
jfc.showOpenDialog(null);
File sf = jfc.getSelectedFile();
if( sf==null )
return false;
String iconName = sf.getAbsolutePath();
URL imgUrl = null;
try
{
imgUrl = new URL("file:\\"+iconName);
}
catch(MalformedURLException murle){
//plujemy!
System.out.println(murle);
}
imageA = getToolkit().getImage(imgUrl);
MediaTracker mt = new MediaTracker(this);
try
{
mt.addImage(imageA,0);
mt.waitForAll();
}
catch (InterruptedException ie)
{
ie.printStackTrace(new PrintStream(System.out));
return false;
}
if(mt.isErrorAny()){
return false;
}else{
return true;
}
在没有完整示例的情况下,您对
waitForAll()
的调用可能会阻塞整个过程。注意API示例如何在后台线程中等待。或者,使用加载图像,如图所示。只是一个注释<代码>返回!mt.isErrorAny()