загружать сетевые изображения асинхронно в Java - PullRequest
2 голосов
/ 12 апреля 2011

Я должен иметь возможность загружать и рисовать X изображений, расположенных на сетевом диске. Мне нужна помощь в поиске способа асинхронной загрузки изображений.

 java.net.URL Loc = new URL("http://auroragm.sourceforge.net/GameCover/GameCases/Mass-Effect.png");
    JLabel lbl = new JLabel();
    lbl.setIcon((anotherIcon = new ImageIcon(Loc)));

Выше приведено изображение, которое загружается в поток графического интерфейса и, таким образом, будет зависать, если будет загружено еще 20. Любая помощь будет оценена

Ответы [ 2 ]

2 голосов
/ 12 апреля 2011

Загрузить изображения в отдельную ветку.Пожалуйста, используйте следующий код как псевдокод:

final java.net.URL Loc = new URL("http://.../Mass-Effect.png");
Thread t = new Thread(new Runnable() {
    public void run() {
        Object content = Loc.getContent();
        // content would be probably some Image class or byte[]

        // or:
        // InputStream in = Loc.openStream();
        // read image from in
    }
);
2 голосов
/ 12 апреля 2011

Краткий ответ: вы должны загрузить изображения в другой поток.

Swing предоставляет хороший набор классов и шаблонов для этого:

http://download.oracle.com/javase/6/docs/api/javax/swing/SwingWorker.html

...