elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 02:00  


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  Filtrar resultados de JTable que no sea Case Sensitive (ni mayus, ni minus)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Filtrar resultados de JTable que no sea Case Sensitive (ni mayus, ni minus)  (Leído 769 veces)
Aikanáro Anário


Desconectado Desconectado

Mensajes: 626



Ver Perfil WWW
Filtrar resultados de JTable que no sea Case Sensitive (ni mayus, ni minus)
« en: 27 Noviembre 2011, 07:30 »

Lo que tengo es una tabla que se carga con los registros de una base de datos. Entonces tengo un TextField en el que pongo, por ejemplo, un nombre y va filtrando los resultados automáticamente hasta dar con el nombre correcto si se encuentra en una de las filas de la tabla.

Código
public void changedUpdate(DocumentEvent arg0) {
ordenador.setRowFilter(RowFilter.regexFilter(jtxtfBuscarInv.getText(), 0));
 
}
 
@Override
public void insertUpdate(DocumentEvent arg0) {
ordenador.setRowFilter(RowFilter.regexFilter(jtxtfBuscarInv.getText(), 0));
 
}
 
@Override
public void removeUpdate(DocumentEvent arg0) {
ordenador.setRowFilter(RowFilter.regexFilter(jtxtfBuscarInv.getText(), 0));
 
}

El problema es que es case sensitive. Y si hay un nombre que empiece con mayúsculas y lo escribo en minúsculas, pues ya no funciona.

Sé que en java están los métodos string.toLowerCase y string.toUpperCase. Pero el problema es que entonces quedaría muy antiestético, sería todo minúsculo o todo mayúsculas.

Creo que tal vez el problema es porque primero meto los datos en la tabla y apartir de ahí se filtran. Talvez si ejecuto un query por cada cambio en el textfield no pasará, pero esa forma me parece muy ineficiente....


En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
sapito169


Desconectado Desconectado

Mensajes: 421



Ver Perfil
Re: Filtrar resultados de JTable que no sea Case Sensitive (ni mayus, ni minus)
« Respuesta #1 en: 27 Noviembre 2011, 14:41 »

. error  :-\


En línea

Aikanáro Anário


Desconectado Desconectado

Mensajes: 626



Ver Perfil WWW
Re: Filtrar resultados de JTable que no sea Case Sensitive (ni mayus, ni minus)
« Respuesta #2 en: 27 Noviembre 2011, 16:47 »

. error  :-\

EH?  :-\
En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
Leyer
Moderador
***
Desconectado Desconectado

Mensajes: 772


[]


Ver Perfil WWW
Re: Filtrar resultados de JTable que no sea Case Sensitive (ni mayus, ni minus)
« Respuesta #3 en: 27 Noviembre 2011, 19:10 »

Código
RowFilter<Object, Object> filter = new RowFilter<Object, Object>() {
     public boolean include(Entry<?, ?> entry) {
           int numberOfColumn=0;//
           String value= String.valueOf(entry.getValue(numberOfColumn));
      return value.equalsIgnoreCase(jtxtfBuscarInv.getText());
       }
};

en el metodo insertUpdate colocas

Código
ordenador.setRowFilter(filter);
« Última modificación: 27 Noviembre 2011, 19:13 por Leyer » En línea

Aikanáro Anário


Desconectado Desconectado

Mensajes: 626



Ver Perfil WWW
Re: Filtrar resultados de JTable que no sea Case Sensitive (ni mayus, ni minus)
« Respuesta #4 en: 27 Noviembre 2011, 19:21 »

Encontré una forma más sencilla de hacerlo, es:

Código
ordenador.setRowFilter(RowFilter.regexFilter("(?i)"+jtxtfBuscarInv.getText(), 0));
 
Pero entonces ahora el problema son las tildes...

Además no entiendo lo que hiciste Leyer, eso es java avanzado xD.
« Última modificación: 27 Noviembre 2011, 21:58 por Aikanáro Anário » En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
ZedGe

Desconectado Desconectado

Mensajes: 110


Ver Perfil
Re: Filtrar resultados de JTable que no sea Case Sensitive (ni mayus, ni minus)
« Respuesta #5 en: 28 Noviembre 2011, 18:32 »

Podrías hacer que lo que escriba el usuario tu lo recojas con getText lo pasas a mayúscula o minúscula como quieras, y los acentos podrías hacer un Jlabel que diga sin acentos, y que al imprimirlo en otro lado lo asemejes con acento...


EJEMPLO


Ingresa Maria
Recojes MARIA y al volver a escribir dices que MARIA = María


Podría ser una solución fácil, pero gastadora de memoria
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines