Bom dia a todos
Como mencionei no tópico http://www.guj.com.br/java/279904-resolvidomudar-cor-texto-em-jtexarea-ou-jtextpane, preciso criar um editorzinho de texto para que o usuário possa inserir um texto, algo como um XML. Agora que consegui mudar as cores das palavras, estou com problemas para realizar a substituição de um texto por outro em uma String. Aparentemente deveria ser algo simples, mas não sei porque não está funcionando. Aqui vai o código:
private void substituiCodigo(String nomeComando, String comando){
//Aqui eu recupero o texto que está na tela
String codigo = tela.getCodTa();
//Aqui eu crio a tag de fechamento. Algo do tipo: comando <nome> se transforma em <\nome>
String fechaComando = nomeComando.substring(0,1) + "\\" + nomeComando.substring(1, nomeComando.length());
//Se já houver algum texto então
if(!codigo.isEmpty()){
int iniComando = 0;
int fimComando = 0;
//Verifica se o comando já está inserido no código
if(codigo.contains(nomeComando)){
//Pega os índices de começo e fim do comando
iniComando = codigo.indexOf(nomeComando);
fimComando = codigo.indexOf(fechaComando)+ fechaComando.length();
}else{
//Se não tiver o comando então insere no final
codigo += nomeComando + " " + fechaComando;
}
//Retira a substring que contém o comando que vai ser substituido
String sub = (codigo.substring(iniComando, fimComando));
//Verifica se a substring está vazia (no caso de quando se insere o comando
sub = (sub.isEmpty() ? " " : sub);
//Aqui deveria ser realizada a substituição, mas não acontece nada. No debug do Eclipse os textos são iguais
codigo = codigo.replaceAll(sub, nomeComando + comando + Pattern.quote(fechaComando));
}else{
codigo = nomeComando + comando + fechaComando;
}
tela.setComando(codigo);
}
Acredito que tenha algum problema com as barras que eu insiro para criar o comando de fechamento ("\"), mas não tenho certeza e também não sei como contornar.
Espero que alguém possa me ajudar.
Inté…
. Agora ta funcionando certinho.