Criar componentes Swing pode ser fácil!
Este blog deixou de ser mantido, mas o autor continua escrevendo aqui. Não deixe de assinar o novo feed!
Apenas um post rápido que mostra como é simples criar componentes Swing customizados.
Eu estava precisando de um componente para mostrar uma imagem. Bom, o JLabel já seria o suficiente. O problema é que as imagens são baixadas da Internet, processo este que pode demorar vários segundos, dependendo da conexão e do tamanho da imagem.
Como usabilidade é a palavra da vez, o componente então precisava avisar que a imagem está sendo carregada. Isso é fácil! Nada melhor do que a famigerada animaçãozinha da bolinha tipo as luzes do programa da Xuxa em preto e branco:

Obviamente, para que isso funcione, o download da imagem deve rodar em uma thread auxiliar.
O código:
-
-
package flickrdemo.gui;
-
-
import java.net.URL;
-
import javax.swing.Icon;
-
import javax.swing.ImageIcon;
-
import javax.swing.SwingWorker;
-
-
-
private URL imageURL;
-
-
private boolean isLoading = false;
-
-
public RemoteImage() {
-
setOpaque(false);
-
}
-
-
return imageURL;
-
}
-
-
this.imageURL = imageURL;
-
loadNewImageByURL();
-
}
-
-
private void loadNewImageByURL() {
-
-
if (imageURL == null) {
-
setIcon(null);
-
}
-
else {
-
if (!isLoading) {
-
-
isLoading = true;
-
setIcon(loadIcon);
-
-
new SwingWorker() {
-
-
setIcon(icon);
-
return null;
-
}
-
-
protected void done() {
-
isLoading = false;
-
}
-
}.execute();
-
}
-
}
-
}
-
}
-
O resultado
Legal, não?! Antes de implementar, pensei que ia dar o maior trabalho, mas nem sempre tudo é o que aparenta ser. Foi fácil, rápido e o resultado final ficou legal.
Caso queira baixar o código pronto, clique aqui. É necessário ter o Java 6.
Tags: componente, java, swing

29 de março de 2007 às 5:07 pm
Massa!!
Também gostei do exemplo do SwingWorker funcionando!
17 de abril de 2007 às 5:26 pm
O cara…
Tem um ajax ali que nunca pára de carregar… aquele “animaçãozinha-da-bolinha-tipo-as-luzes-do-programa-da-Xuxa-em-preto-e-branco:”
Abraço pra tu !!!!
17 de abril de 2007 às 5:35 pm
Sim, esse negocinho é só o arquivo GIF que eu utilizei na aplicação Swing pra mostrar que a imagem está carregando.
Dá uma olhada neste post aqui… abre o Java Web Start para ver o componente funcionando. Ficou legalzinho até!
Abraço!
26 de setembro de 2007 às 9:23 pm
Ah, gostei. Até que o código ficou bem enxuto.
26 de setembro de 2007 às 9:34 pm
Pois é! Nem tudo no Java é tão ruim quanto parece
[]s