0

最近我写了一个代码来获取图像(使用jfileChooser),然后将它作为新图片保存在硬盘上,这很有效。但是当我尝试在其他计算机或系统上使用此代码时,它不起作用。MediaTracker 总是包含一个错误,但我无法显示有关问题的可读信息,而且我不知道如何解决此问题(但我不会再阅读此来源)。

非常感谢任何可能做错的想法。

    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;
    }
4

1 回答 1

1

猜测一下,如果没有完整的示例,您的调用将waitForAll()阻塞事件调度线程。请注意MediaTrackerAPI 示例如何在后台线程中等待。作为替代方案,使用加载图像,如此SwingWorker所示。

于 2013-09-13T01:28:01.333 回答