Texto formatado em swing - Alguém?

9 respostas
L

Dá-lhe, galera!!!
Alguém sabe como implementar uma área de texto que aceite formatação como em um editor de textos?
Tipo, digito a seguinte frase: “Java é java e o resto é porcaria!”, podendo formatar a frase no campo da seguinte forma, por exemplo:
[color=blue]Java[/color] é java e o [color=green]resto[/color] [color=red]é porcaria![/color]”…
Isso em swing… Já tentei com TextArea, PanelText e não consegui…
Alguém me dá um help, por favor!!!???
Um abraço!

9 Respostas

J

Cara, acho mais fácil se implementar um editor html, com ele as marcas garantem o visual e o resultado no fim é o memso, existem alguns exemplos no google de código livre para ver como faz, procure por algo do tipo html java, ou coisa parecida.

F

http://java.sun.com/docs/books/tutorial/uiswing/components/editorpane.html

L

Valeu pela dica, amigão, porém tem que ser em swing mesmo… Já pensei em fazer em html mas para o que preciso não rola não… Quando apresentei a solução em html para o meu cliente ele odiou porque ficou separado da tela swing dele…

O amigo fabiofalci ajudou muito com esse link… Eu já estava pensando que não tinha maneiras de se fazer isso com swing… Mas parece ser simples…
Valeu, fabio!!!

L

Ainda fica um problema…
Como gravar o texto formatado num campo do banco de dados em PostgreSQL para quando fizer um select eu veja o texto conforme foi formatado antes da gravação???

J

Que bom que encontrou solução, mais a ideia não era desenvolver em html, e sim um editor html em swing, pois com html fica muito mais fácio de gerenciar al marcas no texto, já que ficam salvos como tags…

L

Bom, então se entendi o que você quis dizer eu posso ter uma entrada de texto html dentro da minha interface swing?
Mas na hora de formatar o texto como o usuário quiser ele vai ver o texto já formatado na entrada de texto ao invés das tags ou apenas quando exibir?
Se puder fazer assim mostrando já o texto formatado e não as tags então me é viavel aprender assim…
Mais dicas???

J

Olha um exemplo de editor html feito e swing que pode perfeitamente ser um editor de textos:

SimplyHTML
http://www.lightdev.com/page/3.htm
Eles distribuem o código também, é só dar uma boa olhada…

Tem tambem um que chama “ekit”, muito bom também, procure no google.

E um mais simples para entender o básico:
entre em http://examples.oreilly.com/jswing2/code/ e procure por “HTMLEditor”, faça o download do código, verá um editor básico em funcionamento…

L

Aí, brother jrace1
No final das contas resolvi o meu problema com a sua dica, rsrsrsrsrsrsrs…
Pesquisei sobre HTML em Swing, porque assim poderia gravar os textos puros com as tags dentro do banco em um campo do tipo text, de forma bem simples… Mas achei muito código maluco, dos quais eu não entendia nada, porque sou iniciante, rsrs…
Daí, eu tive uma idéia! Misturei substring, replace e tags html e criei uma implementação de um container html em swing usando o componente JEditorPane…
Funcionou perfeitamente!!! Talvez alguém saiba de algo mais simples do que o uso de substring e replace para isso, mas resolveu o meu problema…
Agora quero compartilhar para quem chegar nesse tópico através da pesquisa do fórum…
// no ActionPerformed de um jButton, por exemplo, podemos chamar o método para colocar em itálico o texto selecionado... private void formatarNegrito() { // vamos separar o texto selecionado e o texto não selecionado no JEditorPane instanciado como editPanel... String selecaoStr, textoForaSelecao1 = editPanel.getText().substring(0,editPanel.getSelectionStart()); String textoForaSelecao2 = editPanel.getText().substring(editPanel.getSelectionEnd(), editPanel.getText().length()); selecaoStr = editPanel.getSelectedText(); // agora, usando replaceAll vamos colocar as tags HTML para definirmos o negrito... selecaoStr = selecaoStr.replaceAll(selecaoStr, "<b>"+selecaoStr+"</b>"); // e então, é só voltar todo o texto retirado para o editPanel e partir para o abraço... rssrsrsr... editPanel.setText(textoForaSelecao1+selecaoStr+textoForaSelecao2); }
Lembrando que você pode definir, dessa forma, qualquer formatação aceita em HTML…
Valeu pela dica de usar HTML…
Um grande abraço!

J

Linkel:
Aí, brother jrace1
No final das contas resolvi o meu problema com a sua dica, rsrsrsrsrsrsrs…
Pesquisei sobre HTML em Swing, porque assim poderia gravar os textos puros com as tags dentro do banco em um campo do tipo text, de forma bem simples… Mas achei muito código maluco, dos quais eu não entendia nada, porque sou iniciante, rsrs…
Daí, eu tive uma idéia! Misturei substring, replace e tags html e criei uma implementação de um container html em swing usando o componente JEditorPane…
Funcionou perfeitamente!!! Talvez alguém saiba de algo mais simples do que o uso de substring e replace para isso, mas resolveu o meu problema…
Agora quero compartilhar para quem chegar nesse tópico através da pesquisa do fórum…
// no ActionPerformed de um jButton, por exemplo, podemos chamar o método para colocar em itálico o texto selecionado... private void formatarNegrito() { // vamos separar o texto selecionado e o texto não selecionado no JEditorPane instanciado como editPanel... String selecaoStr, textoForaSelecao1 = editPanel.getText().substring(0,editPanel.getSelectionStart()); String textoForaSelecao2 = editPanel.getText().substring(editPanel.getSelectionEnd(), editPanel.getText().length()); selecaoStr = editPanel.getSelectedText(); // agora, usando replaceAll vamos colocar as tags HTML para definirmos o negrito... selecaoStr = selecaoStr.replaceAll(selecaoStr, "<b>"+selecaoStr+"</b>"); // e então, é só voltar todo o texto retirado para o editPanel e partir para o abraço... rssrsrsr... editPanel.setText(textoForaSelecao1+selecaoStr+textoForaSelecao2); }
Lembrando que você pode definir, dessa forma, qualquer formatação aceita em HTML…
Valeu pela dica de usar HTML…
Um grande abraço!

Que bom que pude ajudar, valeu pelo retorno…

Criado 22 de abril de 2008
Ultima resposta 21 de mai. de 2008
Respostas 9
Participantes 3