大きな画像を表示しているパネルを作成しています。メソッドを使用ImageIO.read(URL)
して画像を表示しています。ここで、指定された画像 URL の読み取りプロセスを中断または一時停止する機能を追加する必要があります。
これどうやってするの?
BufferedImage image = null;
URL urlImage = new URL(surl);
image = ImageIO.read(urlImage);
大きな画像を表示しているパネルを作成しています。メソッドを使用ImageIO.read(URL)
して画像を表示しています。ここで、指定された画像 URL の読み取りプロセスを中断または一時停止する機能を追加する必要があります。
これどうやってするの?
BufferedImage image = null;
URL urlImage = new URL(surl);
image = ImageIO.read(urlImage);
箱から出してそれを行う方法はありません。あなたができることは、これを別のスレッドに入れて停止または中断することです。
Thread.stop()
は、正当な理由で非推奨としてマークされていることに注意してください。また、どのようなメモリ リークが発生する可能性があるかを考えてください。ところで。なぜそのような機能を追加する必要があるのですか?
読み取り元のスレッド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()
。