Localizar palavra e substituir em texto do Jtextpane

3 respostas
java
C

Caraca, já procurei e não encontrei. Quero apagar ou se for possível deixar em vermelho apenas uma palavra de um JTextPane.

private void JtObjetosActionPerformed(java.awt.event.ActionEvent evt) { 
    if (jTextobjetosDevolver.getText().contains(JtObjetos.getText())) {
        JOptionPane.showMessageDialog(this, "devolver");
        jTextobjetosDevolver.setForeground(Color.RED);

    }
}

3 Respostas

T

Bom dia Charles,
tudo bem?

Dê uma olhada neste link:
How to change the color of specific words in a JTextPane?

Você deverá trabalhar com o StyledDocument.

Espero que consiga!

C

Não consegui! ):

T

Olá Charles. Veja se este exemplo te ajuda:

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class FormatarTexto extends JPanel {


    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Font font = new Font("impact", Font.PLAIN, 50);
        FontMetrics fm = g.getFontMetrics(font);
        int widthH = fm.stringWidth("Ola");
        g.setFont(font);

        g.setColor(Color.BLUE);
        g.drawString("Ola", 100, 100);

        g.setColor(Color.RED);
        g.drawString(" Mundo!", 100 + widthH, 100);
    }

    @Override 
    public Dimension getPreferredSize() {
        return new Dimension(400, 200);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable(){
            public void run() {
                JFrame frame = new JFrame("Hello String");
                frame.add(new FormatarTexto());
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.pack();
                frame.setLocationByPlatform(true);
                frame.setVisible(true);
            }
        });
    }
}

Abraço.

Criado 25 de julho de 2016
Ultima resposta 26 de jul. de 2016
Respostas 3
Participantes 2