sábado, 5 de fevereiro de 2011

Swing: Abrindo uma URL


Se você fazendo ou fará um programa para desktop, de preferencia em java que é o assunto principal desse blog, você certamente precisará, em algum momento, em algum lugar da aplicação, criar um link para algum site ou documento, pode ser o link de acesso ao site do programa para compra de licença, um manual do usuário ou simplesmente para ver sua página no orkut, pra mostrar que foi você quem fez aquele software.
Qualquer que seja o motivo, o fato é a necessidade de criar um link para fora do programa, isso não é muito complicado, mas também não é tão simples como no html, que apenas um <a href> resolveria, no programinha feito em java precisaremos manipular alguns objetos, que são java.awt.Desktop e java.net.URI.
O esquema não fica difícil, primeiro deve ser criado um objeto Desktop, recebendo o desktop padrão do usuário com o getDesktop, esse método retorna a area de trabalho do navegador padrão do usuário.
Criado o objeto Desktop, agora precisamos criar um objeto URI, esse objeto representa um “Identificador de Recursos Uniforme” ou seguindo a descrição da sigla, em ingles, “Uniform Resource Identifier“. Ele serve para criarmos paths identificadores de acessos à recursos diversos, como por exemplo, a URL de um site.
Muita calma que ainda não acabou!
Você vai precisar criar dois tratamentos de erro, para cada uma das ações tomadas acima.
Para criar uma URL no objeto URI é necessário tratar uma exceção, caso a URL informada não seja válida, para isso utilizamos a exception java.net.URISyntaxException. Vai ser necessário tratar também a abertura da url, quando mandarmos o objeto Desktop abrir a url criada pode ocorrer uma exceção qualquer de entrada e saida, como por exemplo um rato dentro do seu computador roendo a placa de rede que entra em curto justamente quando você clicar no botão para abrir a url. Para que isso não aconteça precisamos tratar esse tipo de erro com a exceptionjava.io.IOException.
Agora chega de conversa fiada, vamos ao que interessa, o código de exemplo!!
public static void main(String[] args) {
//Cria um objeto Desktop vazio
Desktop desktop = null;
//Cria um objeto URI vazio
URI uri = null;
try {
//inicia a variável desktop, recebendo a area de trabalho do navegador
desktop = Desktop.getDesktop();
//inicia a variável URI com uma endereço http
uri = new URI(“http://codeerror.wordpress.com”);
//manda o desktop abrir a url criada acima
desktop.browse(uri);
catch (URISyntaxException erroUri) {
System.out.println(“deu erro ao criar a url, acho que ela está errada”);
catch (IOException desktopErro) {
System.out.println(“deu erro ao abrir o navegador com o endereço informado”);
}
}
Enjoy!

Um comentário:

  1. Olá amigo blz? cara eu precisava disso... só que abrir dentro de um jpanel por exemplo é possível?

    ResponderExcluir