Java Tips: Preload de Imagens usando ImageIcon

Fazer preload de imagens no Java pode parecer um tanto complicado, porém é mais simples do que você imagina, ainda mais usando a classe ImageIcon. Para começar, vamos responder a pergunta: Em quais momentos você precisa que imagens sejam totalmente carregadas antes de continuar um determinado processo ? Tive essa situação no desenvolvimento de um Applet no qual deve carregar imagens que estão disponíveis na Internet.

O construtor da classe ImageIcon aceita um objeto do tipo URL como parâmetro. Você pode especificar uma URL onde esta localizada a imagem desejada. Internamente, na classe ImageIcon, é realizado o preload da imagem usando MediaTracker. Dessa forma é possível monitorar o status de loading desta imagem.

Segue abaixo exemplo de como usar o ImageIcon para carregar uma imagem em uma URL e somente continuar após a imagem ter sido carregada:

        try {
            ImageIcon image = new ImageIcon(new URL("http://www.exemplo.com.br/imagem.png"));
            
            //manter o loop enquanto a imagem estiver sendo carregada
            while(image.getImageLoadStatus() == MediaTracker.LOADING);
        
            //neste momento a imagem já foi totalmente carregada
            
        } catch (MalformedURLException ex) {
            ex.printStackTrace();
        }

Os possíveis status do MediaTracker são: LOADING (Carregando), COMPLETE (Totalmente carregada), ERRORED (Erro ao carregar), ABORTED (Cancelada).

Você pode obter a imagem em um objeto do tipo Image facilmente:

Image img = image.getImage();
Please follow and like us:

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: