1

我正在创建一个显示大图像的面板。我正在使用ImageIO.read(URL)方法来显示图像。现在我必须添加功能来中断或暂停给定图像 URL 的读取过程。

我怎样才能做到这一点?

BufferedImage image = null;
URL urlImage = new URL(surl);
image = ImageIO.read(urlImage);
4

2 回答 2

1

没有任何方法可以开箱即用。你可以做的是,把它放在一个单独的线程中并停止或中断它。

请记住,Thread.stop()标记为已弃用是有充分理由的,并考虑可能发生的内存泄漏。顺便提一句。为什么需要添加这样的功能?

于 2012-04-13T12:20:30.043 回答
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().

于 2012-04-13T13:04:53.307 回答