Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/11/2016, 07:17
lucho248
 
Fecha de Ingreso: octubre-2010
Mensajes: 154
Antigüedad: 13 años, 7 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.