Em um campo jtextfield invoco keyevent nele
private void tf_pTKeyTyped(java.awt.event.KeyEvent evt) {
String query2 = tf_pT.getText();
String query = query2.replace("(", "").replace(" ", "").replace("-", "").replace("_", "").replace(")", "");
if (query.length() >= 0) {
query = query.substring(0, query.length() - 1);
System.out.println("query = "+query); //aqui esta o que retorna!
}
// System.out.println("query = " + query);
}
o problema e o seguinte quando to no jtextfield tenho la um texto FORUM_GUJ e aperto backspace para ele deletar string ele entra no meu IF e execulta a substring mas no meu primeiro backspace ele retorna (System.out.println("query = " + query);)
isso FORUM_G invez de FORUM_GU
OBS: o retorno que estou mencionando eh o retorno do system out println e nao o retorno do que tem escrito no jtextfield!
, e se no FORUM_G eu continuar dando backsapce para deletar as string ele entra no if e vai tirando 1 por 1 corretamente mas o problema eh no meu primeiro backspace que invez de deletar apenas 1 string e retornar com apenas 1 string deletada ele deleta 2 string , e quando falta 1 string para ser deletada e eu deleto ele gera esse erro
"AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
invez de isso aqui
query = query.substring(0, query.length() - 1);
retirar apenas 1 string ele da primeira vez tira 2 =/
sendo que ainda tem uma string na memoria dele! alguem pode me salvar?
Agradeco desde ja atencao!!!