Mudar a cor de uma string num texto .txt

Amigo, coloquei o comando de chamada dentro de um try como mostro abaixo, o programa passou a rodar, mesmo lendo esta linha, mostra as cifras(notas), mas não em highligh, só não dá mais erro. Tô tentando.
try {
highlight(txtareamus, nova);
} catch (Exception ex) {
Logger.getLogger(FrmMusicaPlay.class.getName()).log(Level.SEVERE, null, ex);
}

Obrigado.

Tentei fazer o seguinte;

               try {   
              JTextPane jep = new JTextPane();
              jep.setText(lin);     
                                          // highlight(txtareamus, nova);    comentei esta linha
               highlight(jep, nova);   quando o programa executa esta linha, vai para o catch
              } catch (Exception ex) {
               Logger.getLogger(FrmMusicaPlay.class.getName()).log(Level.SEVERE, null, ex);
           }

Coloquei um texto, não funcionou, tá dificil, acho melhor ir estudar Java. Vlw !

Calma rapaz, sem ansiedade. É errando que se aprende, eu não tenho como testar isso ainda.

Se está caindo no catch, qual erro indica? Não é só dando erro, quando é assim, todo erro tem um porquê, posta o que apareceu lá

Abner, boa tarde, não ia mais incomodar, mas como vc pediu para ver o erro, estou eu aqui de novo, e quando vc puder, verificar ótimo. tentei rodar o programa e notei ;

Conforme vc pediu, fiz ;

Pega os códigos que eu te passei e cópia pra o seu JFrame. E exclui a classe Main. (feito)

Tira o static dos dois métodos, não é necessário: feito
public static void highlight
public static void removeHighlights
Ao invés de chamar isso
JTextPane jep = new JTextPane();
Você vai chamar assim
highlight(nome_do_seu_textpane, nova); feito

Bem, vamos lá, no código , apareceu o balãozinho amarelo dizendo, criar método :

highlight (java.swig.JtextPane.java.lang.string) em , na linha onde faço a chamada highlight(txtareamus, nova); a primeira tentativa que rodei o programa, deixei como esta.

Também apareceu o balãozinho amarelo nesta parte do código ;

for (int i = 0; i < hilites.length; i++) {
if (hilites[i].getPainter() instanceof MyHighlightPainter) {
hilite.removeHighlight(hilites[i]);
}
}
Dizendo “converter para loop for” . na primeira tentativa, rodei o programa sem clicar no que o java pedia, deixei como esta;

Rodei o programa, na parte onde deveria mostrar as cifras, o programa não faz nada e da a seguinte mensagem na console ;

Wed Sep 04 13:16:15 BRT 2019 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

Conexão ao DB Ok ! ! !

Exception in thread “AWT-EventQueue-0” java.lang.UnsupportedOperationException: Not supported yet.

    at Formularios.FrmMusicaPlay.interrupt(FrmMusicaPlay.java:337)
    at Formularios.FrmMusicaPlay.btniniciarActionPerformed(FrmMusicaPlay.java:298)
at Formularios.FrmMusicaPlay.access$100(FrmMusicaPlay.java:27)
at Formularios.FrmMusicaPlay$2.actionPerformed(FrmMusicaPlay.java:108)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6539)

Exception in thread “Thread-3” java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: highlight at Formularios.FrmMusicaPlay$5.run(FrmMusicaPlay.java:281)

CONSTRUÍDO COM SUCESSO (tempo total: 34 segundos)

Cliquei nos balãozinho amarelo e fiz o que o java pediu, rodei o programa, deu a seguinte mensagem;

Wed Sep 04 13:43:16 BRT 2019 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Conexão ao DB Ok ! ! !
Exception in thread “AWT-EventQueue-0” java.lang.UnsupportedOperationException: Not supported yet.
at Formularios.FrmMusicaPlay.interrupt(FrmMusicaPlay.java:341)
at Formularios.FrmMusicaPlay.btniniciarActionPerformed(FrmMusicaPlay.java:302)
at Formularios.FrmMusicaPlay.access$100(FrmMusicaPlay.java:27)
at Formularios.FrmMusicaPlay$2.actionPerformed(FrmMusicaPlay.java:108)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege
(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)

    Exception in thread "Thread-3" java.lang.UnsupportedOperationException: Not supported yet.
at Formularios.FrmMusicaPlay$5.highlight(FrmMusicaPlay.java:298)
at Formularios.FrmMusicaPlay$5.run(FrmMusicaPlay.java:281)
    CONSTRUÍDO COM SUCESSO (tempo total: 1 minuto ), 

    será que da para ver o erro  ? Obrigado

O nosso programa é o da esquerda



Eu usei um JTextArea mesmo.

Faz assim:

MyHighlightPainter myHighlightPainter = new MyHighlightPainter(new Color(162, 236, 207));
public void highlight(JTextComponent textComp, String pattern) {
        try {
            removeHighlights(textComp);

            Highlighter hilite = textComp.getHighlighter();
            Document doc = textComp.getDocument();
            String text = doc.getText(0, doc.getLength());
            int pos = 0;

            while ((pos = text.indexOf(pattern, pos)) >= 1) {
                hilite.addHighlight(pos, pos + pattern.length(), myHighlightPainter);
                pos += pattern.length();
            }
        } catch (Exception e) {
        }
    }

    public void removeHighlights(JTextComponent textComp) {
        try {
            Highlighter hilite = textComp.getHighlighter();
            Highlighter.Highlight[] hilites = hilite.getHighlights();
            for (int i = 0; i < hilites.length; i++) {
                if (hilites[i].getPainter() instanceof MyHighlightPainter) {
                    hilite.removeHighlight(hilites[i]);
                }
            }
        } catch (Exception e) {
        }
    }

    class MyHighlightPainter extends DefaultHighlighter.DefaultHighlightPainter {

        public MyHighlightPainter(Color color) {
            super(color);
        }
    }

No botão eu deixei assim:

    new Thread() {
        @Override
        public void run() {
            String texto_antigo = null;
            File file = new File("C:\\caminho\\arquivo.txt");
            BufferedReader br = null;
            try {
                br = new BufferedReader(new FileReader(file));
                while ((texto = br.readLine()) != null) {
                    texto_antigo += "\n" + texto;
                    jTextArea1.append(texto + "\n");
                    highlight(jTextArea1, texto);
                    Thread.sleep(1000);

                    if (texto != null) {
                        if (texto.contains("alguma_coisa")) {
                            System.out.println("Dado Encontrado.");
                        }
                    } else {
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }.start();

Só encontrei um problema, como esse código procura por patterns, se você tiver textos iguais, ele vai começando a pegar os caracteres que correspondem:

Caro amigo, vou testar, mudando um pouco de assunto, o sr. Wellington Domiciano wldomiciano@gmail.com é da equipe de vcs da Guj ??? Ele me pediu todos os meus arquivos, métodos, classes, arq .txt, arq .jpg e disse que iria me ajudar a encontrar uma solução, no inicio desconfiei, pois parecia que ele queria era fazer a copia de meu programa, se for esse o caso, bastava ele pedir que eu o daria numa boa e não dizer que iria me ajudar, se eu estiver errado, peço desculpa a ele e a Deus por desconfiar de uma pessoa do bem, mas hoje em dia esta difícil confiarmos em outra pessoa, pois ela pode ser do bem ou do mal. Obrigado.

Ele participa aqui do nosso fórum sim kkkkkk, ele queria ajudar mesmo!

Caramba, mais uma vez me dei mal, julguei uma pessoa errada, sei que ele deve estar vendo meu texto e rindo de mim, vou orar muito por ele esta noite e pedir perdão a Deus por este erro, desconfiei de uma pessoa do bem. Não tenho nem cara para pedir desculpa a ele, errei feio, puxa vida, ele só queria ajudar e eu pensando mal do cara, que vacilo meu, Wellington, sei que vc esta lendo este texto, cara me desculpa. fiquem todos com Deus.

Fica em paz, acontece, todos nós erramos! Como você falou, como vc falou, é difícil confiar em alguém hoje em dia.

Mas geralmente quando alguém aqui do fórum fizer esse tipo de pedido, pra passar o código e tal, é pq a pessoa quer ajudar mesmo. Mas fica em paz, isso acontece mesmo

Valeu pela força. obrigado.

No método interrupt da classe FrmMusicaPlay você está lançando uma exceção.

Ok, já retirei do programa, vi na internet e não soube usar, isso tem nos livros que tenho, vou ver melhor como funciona. Muito obrigado. Armando

O programa funcionou? Deu erro?

Amigo, boa tarde, acordei agora, fui dormir tarde ontem, depois das 2:00 editando umas musicas da igreja onde sou operador de áudio, para gravar um cd pedido pelo pastor.

Cheguei a ver seu código, mas não tive tempo de testar, vou ver agora e te aviso, muito obrigado pela atenção e preocupação. Vlw, Abç.

Abner, boa tarde, cara, estava até agora com o Wellington, o cara é um baita profissional como vcs, sinto muito ter duvidado da ajuda dele, pois é , o cara resolveu o problema, funcionou redondinho, como eu queria.

A respeito do seu código, vou testar depois, estou muito feliz e agradeço isso a vc, ao Ricardo e ao Wellingtom, vcs são 10 ! muito feliz, feliz pra caramba, muito obrigado.

Agora vou ver e estudar o seu código e o código que o Wellington me enviou , aprender e usar em outros projetos que surgirem. Vou estudar a fundo o Java, achei uma linguagem difícil, pela minha falta de conhecimento, tenho que estudar muito Programaçã Orientada a Objeto, Programação de GUI , uso de Bibliotecas do API java e etc… e prometo só fazer perguntas de alto nível.

Muito obrigado, tô muito feliz, fiquem todos com Deus e BrigadÚ meus camaradas !!!