Aplicação Swing + Link HTLM

Boa tarde pessoal, beleza?

Existe como eu abrir em uma aplicação cliente, um link HTML?

Queria colocar um about e um help em HTML na minha aplicação.

Grato

Olá esta solução que encontrei não é das melhores, porque só funciona em ambiente windows, fazendo com que o programa perca a portabilidade. 
Estou pesquisando sobre a classe URL, qualquer coisa depois eu posto, mas de qualquer forma, o código está ai:
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;



public class Exemplo extends JFrame {
	private JButton btExemplo;
	
	public Exemplo() {
		this.btExemplo= new JButton("Abrir");
		Container container=this.getContentPane();
		container.add(btExemplo);
		btExemplo.addActionListener(new ActionListener () {

			public void actionPerformed(ActionEvent arg0) {
				btExemploClick();
				
			}
			
		});
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		pack();
	}
	
	public void btExemploClick() {
		try {
			//Com internet explorer
			Runtime.getRuntime().exec("C:\Arquivos de programas\Internet Explorer\iexplore www.google.com.br");
			//com firefox
			Runtime.getRuntime().exec("C:\Arquivos de programas\Mozilla Firefox\firefox www.google.com.br");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  

		
	}
}

public class Principal {
	public static void main(String[] args) {
		Exemplo e= new Exemplo();
		e.setVisible(true);
	}
	 
}

obs: Você pode melhorar criando constantes, com o caminho dos navegadores, e passar como parametro para o método:

Valeu!

Muito obrigado pela ajuda, consegui de outra forma, vou postar caso mais alguem precise.

Fiz o seguinte:

Chameu meu novo form através do JMenuBar.

frmHelp oHelp = new frmHelp(); frmHelp.Display("http://www.guj.com.br");

Onde Display é uma função em que passo a URL com String.
E na minha função textHelp é um JTextPane. Então ele joga o conteúdo da pagina pra esse JTextPane.

[code] public void Display(String Pagina){
textHelp.setSize(800,600); //
textHelp.setContentType(“text/html”);
try {
textHelp.setPage(Pagina);
} catch (IOException ex) {
ex.printStackTrace();
}

}

[/code]

Funcionou perfeitamente, porém não atendeu todas as minhas expectativas.

Podem me tirar umas duvidas:

1) Endereço do HTML dentro da aplicação.
Quando mando URL da pagina como String, eu passo um endereço da Web válido, porém eu não consigo passar a pagina que esta dentro do meu projeto, não consigo passar um endereço dinâmico, só um estático tipo “C:/Documents and…/pagina.html”, o que só vai funcionar na minha maquina. Existe como eu passar isso de forma dinâmica? Eu pensei em pegar as propriedades do projeto, tipo getProjectPath, algo assim, afim de tornar isso dinâmico. O que me sugerem?

2) Links acessíveis.
Outro grande problema, é que quando ele exibe a pagina no meu JTextPane, não reconhece os links, isso fudeu tudo, pois a minha inteção era tornar esta pagina navegável dentro JTextPane. Existe como eu fazer isso?

3) Abrir uma pagina no navegador.
Caso eu não consiga meus links no JTextPane, como eu faço pra implementar isso? O que me sugerem? Eu tenho que implementar um Help, então algo que iria me ajudar muito seria HTML, pra eu fazer algo mais bonitinho. Sugestões?

Obrigado a todos.

Olá a sua implementação ficou bem legal, dá uma olhada neste link aqui,e vê se te ajuda em alguma coisa:

http://ostermiller.org/utils/Browser.java.html

Att
Daniel Bussade de Almeida

Vou dar uma olhada nisso, depois digo o que rolou.

Daniel muito obrigado!

Abraço.
[]`s

Para abrir uma página no navegador é façil e o ViniGodoy já explicou isso:

http://www.guj.com.br/posts/list/48220.java#252437

Da uma olhadinha que ele postou o código

[quote]Para abrir uma página no navegador é façil e o ViniGodoy já explicou isso:

http://www.guj.com.br/posts/list/48220.java#252437

Da uma olhadinha que ele postou o código[/quote]

Eu tentei implementar isso, mas o maldito do NetBeans acusou erro na URI, ele me da 3 opções de import da URI, e mesmo importando as 3 ele da erro.

Putz, ta ficando complicado.

Daniel eu implementei da sua forma, mas existe um porém, o idioma.

Por exemplo meu Windows é em inglês, então tenho que mudar o caminho para C:/Program Files/… , essa aplicação que estou fazendo é um trabalho universitário, e até onde sabemos é meio que única. Uma interface gráfica em JAVA para o PARBIT (http://www.arl.wustl.edu/projects/fpx/parbit/), então isso vai estar disponível em uma porrada de sites e até em um trabalho universitário da USP, por isso eu precisava de algo mais portável.

Eu pensei em implementar utilizando vários try, mas acho que seria um trampo inutil e besta, considerando que eu não vou conseguir suprir todos os SO do mercado corretamente.

Mesmo assim muito obrigado a todos, vou continuar tentando implementar.

Abraços!

Seguindo o código do ViniGodoy um exemplo:

[code]

import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

public class TestaBrowser{
public static void main(String[] args) {
Desktop desktop = null;
//Primeiro verificamos se é possível a integração com o desktop
if (!Desktop.isDesktopSupported())
throw new IllegalStateException(“Desktop resources not supported!”);

	desktop = Desktop.getDesktop();   
	//Agora vemos se é possível disparar o browser default.   
	if (!desktop.isSupported(Desktop.Action.BROWSE))   
	    throw new IllegalStateException("No default browser set!");   
	  
	//Pega a URI de um componente de texto.   
	URI uri = null;
	try {
		uri = new URI("www.guj.com.br");
	} catch (URISyntaxException e1) {
		e1.printStackTrace();
	}   
	  
	//Dispara o browser default, que pode ser o Explorer, Firefox ou outro.   
	try {
		desktop.browse(uri);
	} catch (IOException e) {
		e.printStackTrace();
	}
}

}[/code]
Você quer mais oque? Tão simples assim

É possível também utilizar o SwingX para fazer seu help, vai dar um aspecto visual muito bom também.

[quote=Mark_Ameba]Seguindo o código do ViniGodoy um exemplo:

[code]

import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

public class TestaBrowser{
public static void main(String[] args) {
Desktop desktop = null;
//Primeiro verificamos se é possível a integração com o desktop
if (!Desktop.isDesktopSupported())
throw new IllegalStateException(“Desktop resources not supported!”);

	desktop = Desktop.getDesktop();   
	//Agora vemos se é possível disparar o browser default.   
	if (!desktop.isSupported(Desktop.Action.BROWSE))   
	    throw new IllegalStateException("No default browser set!");   
	  
	//Pega a URI de um componente de texto.   
	URI uri = null;
	try {
		uri = new URI("www.guj.com.br");
	} catch (URISyntaxException e1) {
		e1.printStackTrace();
	}   
	  
	//Dispara o browser default, que pode ser o Explorer, Firefox ou outro.   
	try {
		desktop.browse(uri);
	} catch (IOException e) {
		e.printStackTrace();
	}
}

}[/code]
Você quer mais oque? Tão simples assim[/quote]

Mas muito obrigado pela ajuda, funcionou agora criando uma nova classe.

Abraços