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///AUTOCOMPLETAR
private TextAutoCompleter completeCodigos;
/** CARGO AUTOCOMPLETAR **/
public void completarCodigos(){
try {
completeCodigos=new TextAutoCompleter(tfCodigo); //JTEXTFIELD donde se escribe CODIGO/DESCRIPCION
completeCodigos.setMode(0); //infijo, busca coincidencias que este en cualquier parte de lo ingresado
completeCodigos.setCaseSensitive(false); //No sensible a mayúsculas/minusculas
DAOMenu dm = new DAOMenu();
List<Object> lista = dm.list();
for (Iterator iterator
= lista.
iterator(); iterator.
hasNext();) { completarCon = obj.getCodigo()+" | "+obj.getDescripcion1()+" "+obj.getDescripcion2();
completeCodigos.addItem(completarCon);
}
e.printStackTrace();
Mensajes.ERROR("No se pudo cargar autocompletar: #1500");
}
}
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 originalpublic void leeArticulo(){
DAOMenu dm = new DAOMenu();
Menu m;
try {
String codigo = this.quitarAutocompletar();
if(codigo.length() >=0){
dm = new DAOMenu();
m = (Menu) dm.getByCodigo(codigo);
int cantidad = Integer.parseInt(tfCantidad.getText());
if(m.getId() > 0){
tfNuevoPr.setText(Float.toString(m.getPrecio() * cantidad));
}else{
tfNuevoPr.setText("0.00");
}
}
} catch (Exception e) {
e.printStackTrace();
Mensajes.ERROR("Error al artículo: #1035");
}
}
public String quitarAutocompletar(){
try {
String codigo = tfCodigo.getText();
if(codigo.contains(" | ") && codigo.length() > 0){
codigo =new String(codigo.substring(0, codigo.indexOf(" ")));
}
return codigo;
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
Espero que a alguien le sirva.
Abrazo y gracias.