Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] autocompletar un jtextfield

Estas en el tema de autocompletar un jtextfield en el foro de Java en Foros del Web. Buenas tardes, les traigo esta inquietud. en un jframe lo que pretendo hacer es cuando va tipeando en un JTEXTFIELD, necesito en lo posible que ...
  #1 (permalink)  
Antiguo 31/10/2016, 15:11
 
Fecha de Ingreso: octubre-2010
Mensajes: 154
Antigüedad: 13 años, 6 meses
Puntos: 5
autocompletar un jtextfield

Buenas tardes, les traigo esta inquietud.
en un jframe lo que pretendo hacer es cuando va tipeando en un JTEXTFIELD, necesito en lo posible que previsualice un jtable o algo similar, que me de las opcines que coinciden con lo que cargo de la db.
de ultima solo las opciones de un solo campo
por ej:
en el frame CAJA, cuando va tipeando en el JTEXFIELD codigo, mostrar los códigos que coinciden... o en el JTEXFIELD descripcion, Las descripciones que coinciden.

en el mejor de los casos... mostrar como una previsualizacion de un JTABLE con los códigos y descripciones que coinciden, me explico?

lei que esta la librería autocomplete.jar, en si cumpliría lo que necesito, pero mejor si muestro ambos valores (código + descripción).

desde ya muchas gracias por cualquier ayuda.
saludos.
  #2 (permalink)  
Antiguo 31/10/2016, 17:36
 
Fecha de Ingreso: diciembre-2013
Mensajes: 16
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: autocompletar un jtextfield

No sé que librería es 'autocomplete.jar' , pero entendí lo que querés. Yo lo haría implementado
KeyListener, se la añades al JTextfield (addKeyListener) y ya esta. Ahora en ese metodo todo lo que tenes que hacer es pasarle de que JTexfield se trata, si se trata del de descripción, entonces una vez entro en el 'if (keyEvent.getSource.equals(textFieldDescripcion)) ' conectas con la base de datos y buscas la string que coincida con la obtenida del textField y la escribis en la tabla.
  #3 (permalink)  
Antiguo 01/11/2016, 07:17
 
Fecha de Ingreso: octubre-2010
Mensajes: 154
Antigüedad: 13 años, 6 meses
Puntos: 5
Respuesta: autocompletar un jtextfield

Hola udok y a todos.
si hago lo que me dices. Lo que pretendo hacer es, utilizando una libreria generica que hay en distintos foros. Con sus pasos a seguir para como utilizarla, es muy simple por cierto.

(fuente: ver el ultimo comentario de: "nawin khatiwada"
http://stackoverflow.com/questions/1...-dropdown-list
link del jar: http://download1689.mediafire.com/4g...oCompleter.jar)

lo solucione poniendo en un solo jtextfield "CODIDO | DESCRIPCION" de la siguiente manera:
Código Java:
Ver original
  1. ///AUTOCOMPLETAR
  2.     private TextAutoCompleter completeCodigos;
  3.  
  4. /** CARGO AUTOCOMPLETAR **/
  5.     public void completarCodigos(){
  6.         try {
  7.             completeCodigos=new TextAutoCompleter(tfCodigo);     //JTEXTFIELD donde se escribe CODIGO/DESCRIPCION      
  8.             completeCodigos.setMode(0); //infijo, busca coincidencias que este en cualquier parte de lo ingresado
  9.             completeCodigos.setCaseSensitive(false); //No sensible a mayúsculas/minusculas
  10.            
  11.             DAOMenu dm = new DAOMenu();
  12.             List<Object> lista = dm.list();
  13.                
  14.             String completarCon;
  15.             for (Iterator iterator = lista.iterator(); iterator.hasNext();) {
  16.                 Menu obj = (Menu) iterator.next();
  17.                 completarCon = obj.getCodigo()+" | "+obj.getDescripcion1()+" "+obj.getDescripcion2();
  18.                 completeCodigos.addItem(completarCon);
  19.             }
  20.         } catch (Exception e) {
  21.             e.printStackTrace();
  22.             Mensajes.ERROR("No se pudo cargar autocompletar: #1500");
  23.         }
  24.     }

Con esto cargo el menu de opciones de autocompletar, y cuando preciona enter, tomo el codigo seleccionado con el metodo "quitarAutocompletar()", y cargo los campos siguientes(precio, cantidad, etc.)

al precionar ENTER en el JTEXTFIELD tfcodigo llama a este metodo:
Código Busco y cargo el articulo:
Ver original
  1. public void leeArticulo(){     
  2.         DAOMenu dm = new DAOMenu();
  3.         Menu m;
  4.         try {
  5.             String codigo = this.quitarAutocompletar();
  6.            
  7.             if(codigo.length() >=0){
  8.                
  9.                 dm = new DAOMenu();
  10.                 m = (Menu) dm.getByCodigo(codigo);                 
  11.                 int cantidad = Integer.parseInt(tfCantidad.getText());
  12.                
  13.                 if(m.getId() > 0){
  14.                     tfNuevoPr.setText(Float.toString(m.getPrecio() * cantidad));
  15.                 }else{
  16.                     tfNuevoPr.setText("0.00");
  17.                 }
  18.             }      
  19.         } catch (Exception e) {
  20.             e.printStackTrace();
  21.             Mensajes.ERROR("Error al artículo: #1035");
  22.         }      
  23.     }
  24.  
  25. public String quitarAutocompletar(){
  26.         try {
  27.             String codigo = tfCodigo.getText();
  28.             if(codigo.contains(" | ") && codigo.length() > 0){
  29.                 codigo =new String(codigo.substring(0, codigo.indexOf(" ")));
  30.             }
  31.             return codigo;
  32.         } catch (Exception e) {
  33.             e.printStackTrace();
  34.         }
  35.         return "";
  36.     }

Espero que a alguien le sirva.
Abrazo y gracias.

Etiquetas: jtable, jtextfield
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:12.