JTextArea com link para homepage

9 respostas
oitathi

Olá, eu possuo, um JTextArea e dentro dele tem o endereço de uma determinada homepage. Quero saber como eu faço para que esse endereço sirva de link para homepage.

9 Respostas

ViniGodoy

Com o JTextArea não faz.

Você precisa é usar um JEditorPane (ou um JTextPane, se não for modificável). Como ele suporta HTML, aí fica fácil transformar o texto num link:
http://download.oracle.com/javase/tutorial/uiswing/components/editorpane.html

oitathi

então, eu mudei para JTextPane. Ai ficou:

private  JTextPane info = new  JTextPane();
        info.setSize(240, 100);
        info.setLocation(230, 350);
        info.setEditable(false);
        info.setVisible(true);
        info.setText("\n"+
                     "     MAP TESTE \n"+
                     "     Versao: 1.0a \n"+
                     "     Copyright BrasilInc. \n"+
                     "     Todos os direitos reservados \n"+
                     "     www.brasilinc.com.br");
        info.setOpaque(true);

Mas eu soh quero apenas o endereço do site se torne um link, não o texto inteiro. Como eu faço?

ViniGodoy

Faz o setText com HTML:

info.setText("&lt;html&gt;&lt;body&gt;"+ "&lt;h1&gt;MAP TESTE&lt;/h1&gt;"+ "<ul><li>Versao: 1.0a"+ "<li>Copyright BrasilInc."+ "<li>Todos os direitos reservados: "+ "<a>www.brasilinc.com.br</a>" + "</ul>&lt;/html&gt;&lt;/body&gt;");

oitathi

Não funcionou não… ele escreveu na tela igualzinho como tah escrito no código… com as tags…
não formou link nenhum…
tem q importar alguma coisa??

ViniGodoy

Acrescente a linha:

Antes de definir o texto.

oitathi

Agora jah tah aparecendo melhor… mas as letras estão enormes!!!
dei um info.setFont(…). mas não funcionou!!!
O que eu devo fazer?

ViniGodoy

É só manipular o HTML agora, do jeito que você faria com qualquer página HTML.
http://w3schools.com/html/default.asp

oitathi

Tah… mas o link continua não funcionando… tem q adicionar algum listener?
pq nem ficou ativo, nem nada

ViniGodoy

Tem sim. Você precisa registrar um HiperLinkListener. O javadoc explica:
http://download.oracle.com/javase/7/docs/api/javax/swing/JEditorPane.html

Você pode usar a classe Desktop para navegar até o link:
http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/

Criado 18 de novembro de 2010
Ultima resposta 18 de nov. de 2010
Respostas 9
Participantes 2