Formatando texto em swing

8 respostas
R

pessoal queria saber como faço para que possa colocar um texto formatado …

tipo queria colocar uma caixa de texto onde eu pudesse colocar palavras em itálico.

qual componente swing eu uso?

8 Respostas

D

Um JLabel vc poderia fazer isso, é só usar formatação html que vai ser renderizado. A maioria dos componentes Swing tem essa funcionalidade.

Falow!

R

blz … disso eu sei…

mas tipo… tenho um formulário que um usuário preenche e ele pode colocar palavras em itálico… tenho que fazer como ele colocar palavras em itálico em algum componente de texto… mas nao sei qual

V

Que eu saiba, só tem como fazer isso usando um JTextPane.
Mas não é tarefa das mais fáceis…

M

JPanel panel = new JPanel(); panel.setFont(new java.awt.Font("Arial", 3, 12)); panel.setFont(new java.awt.Font("Arial", font.ITALIC, 12)); panel.setFont(new java.awt.Font("Arial", font.BOLD , 12)); panel.setBackground(Color.LIGHT_GRAY); panel.setLayout(new GridBagLayout()); TitledBorder border = new TitledBorder("UNIVERSO"); border.setTitleColor(new java.awt.Color(255, 255, 200)); border.setBorder(BorderFactory.createLineBorder(Color.BLUE, 1)); panel.setBorder(border);

[color=darkblue]O mesmo se aplica a um JTextField e vários outros componentes do Swing [/color]

JTextField text = new JTextField();
        text.setFont(new java.awt.Font("Arial", Font.ITALIC, 12));
        text.setFont(new java.awt.Font("Arial", Font.BOLD, 12));
        text.setBackground(Color.LIGHT_GRAY);
        text.setForeground(Color.LIGHT_GRAY);
R

ae , eu fiz assim

criei um JTextPane … e criei um botao …

no evento click do botao eu coloquei

int pos = txtTituloImagem.getCaretPosition();
Action action = new StyledEditorKit.ItalicAction();
action.actionPerformed(evt);
txtTituloImagem.grabFocus();

eu consegui colocar em italico dentro do JTextPane…

porem quando eu passo essa string… ela vai normal…
ela nao passa em itálico…

e agora?

M

[color=darkblue] Tente isso com um JTextField ou com qualquer outro componente, inclusive o JtextPane:[/color]

text.setFont(new java.awt.Font("Arial", Font.ITALIC + Font.BOLD, 12));

[color=darkblue] Aqui funcionou:[/color]

R

na verdade eu preciso que algum componente de texto passe para mim a string em html pois vou colocar num banco entende.

preciso que quando eu escreva algo em italico ele me retorne a string já com o html especifico… tipo:

trabalho em italico ;;;;;;>>>>>>> fique >>> trabalho

algo do tipo… pq preciso guardar a string em italico…

nao sei como posso fazer isso

L

Aí, galera… Sei que já faz um bom tempo que esse tópico foi aberto, porém vou responder a pergunta para finalizar o tópico com a solução para ajudar aqueles que tiverem o mesmo problema e lerem esse tópico através da pesquisa do fórum…
Para formatação de texto que será gravado em banco de dados, sem dúvidas, a melhor opção para a maioria dos casos é o uso do HTML, que você pode gravar num simples campo do tipo text…
Usamos o componente jEditorPane para a tarefa de exibir um container HTML…
Para isso, vamos dar a opção de itálico a um texto selecionado pelo usuário…
// no ActionPerformed de um jButton, por exemplo, podemos chamar o método para colocar em itálico o texto selecionado... private void formatarSelecaoItalico() { // 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 itálico... selecaoStr = selecaoStr.replaceAll(selecaoStr, "<i>"+selecaoStr+"</i>"); // e então, é só voltar todo o texto retirado para o editPanel e partir para o abraço... rssrsrsr... editPanel.setText(textoForaSelecao1+selecaoStr+textoForaSelecao2); }
Bom, essa foi a solução que eu desenvolvi para mim… Funciona perfeitamente… Talvez alguém saiba de algo mais simples do que o uso de substring e replace, mas está aí para quem precisar fazer…
Um grande abraço!

Criado 22 de maio de 2007
Ultima resposta 21 de mai. de 2008
Respostas 8
Participantes 5