Bom Dia ao amigos do GUJ!
Venho aqui trazer um problema, que passei a noite pensando e não consegui resolver ainda. Eu preciso trazer em um JTextArea algumas facilidades para o cliente que vai digitar uma fórmula. Então, se ele digitar as letras C, L ou V, devo automaticamente inserir o “[” e o “]” e o cursor ficar posicionando entre os colchetes. Até aí blz (inclusive pedi ajuda aqui no fórum ontem). O cliente vai digitar entre os colchetes um número indeterminado de digitos. E Então, quando ele digitar +, -, * ou /, eu devo sair de dentro dos colchetes e inserir o operador digitado por ele fora do colchete.
Ou seja, mais ou menos assim: C[142]+V[133]*[121].
Segue o fragmento do meu código responsável por esta lógica:
[code]public void keyReleased(KeyEvent evt){
String t = jTextArea_Formula.getText().toUpperCase();
int pos = jTextArea_Formula.getCaretPosition()-0;
if((evt.getKeyChar() == 'C')||(evt.getKeyChar() == 'V')||(evt.getKeyChar() == 'L')||
(evt.getKeyChar() == 'c')||(evt.getKeyChar() == 'v')||(evt.getKeyChar() == 'l')){
t = t + '[' + ']';
jTextArea_Formula.setText(t);
jTextArea_Formula.setCaretPosition(pos+1);
}
if((evt.getKeyChar() == '+')||(evt.getKeyChar() == '-')||(evt.getKeyChar() == '/')||(evt.getKeyChar() == '*')){
t = t + evt.getKeyChar();
jTextArea_Formula.setText(t);
jTextArea_Formula.setCaretPosition(pos+1);
} [/code]
Não sei se a maneira que fiz é a melhor. Mas está quase resolvendo meu problema. Como vocês podem ver, estou duplicando no segundo if o operador matemático digitado, para conseguir exibi-lo fora do colchetes (no final da String). Mas uma cópia do operador está ficando lá dentro do colchetes.
Então minha pergunta é: Como faço para tirar aquele operador que fica dentro do colchetes? Sabendo-se que sempre que eu encontrar o “]” na minha string eu quero remover o caracter anterior a ele (porque este será o operador que está sobrando.
Ex. de saída desejada: C[142]+V[133][121]
Saída Atual: C[142+]+V[133]*[121]
Alguém me ajuda?