我正在创建一个显示大图像的面板。我使用ImageIO.read(URL)
方法来显示图像。现在我必须添加功能来中断或暂停给定图像URL的读取过程。
我该怎么做?
BufferedImage image = null;
URL urlImage = new URL(surl);
image = ImageIO.read(urlImage);
答案 0 :(得分:1)
没有任何方法可以开箱即用。你可以做的是,将它放在一个单独的线程中并停止或中断它。
请记住,Thread.stop()
被标记为已弃用有充分理由并考虑可能发生的内存泄漏。顺便说一句。为什么需要添加这样的功能?
答案 1 :(得分:0)
您肯定需要另一个帖子,您可以从中关闭InputStream
正在读取的ImageIO.read
。所以,首先,您需要重新设计代码:
final InputStream stream = new URL(surl).openStream();
// find a way to push the 'stream' reference to the other thread
final BufferedImage image = ImageIO.read(stream); // this will block
在另一个主题中,您必须致电stream.close()
。