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

jComboBox de busqueda con JPA

Estas en el tema de jComboBox de busqueda con JPA en el foro de Java en Foros del Web. Hola. Estoy haciendo un proyecto en el que uso una BD de Pacientes con el gestor de entidades de Netbeans y quiero incorporar un cajón ...
  #1 (permalink)  
Antiguo 15/07/2015, 04:48
 
Fecha de Ingreso: agosto-2008
Mensajes: 10
Antigüedad: 15 años, 8 meses
Puntos: 0
jComboBox de busqueda con JPA

Hola. Estoy haciendo un proyecto en el que uso una BD de Pacientes con el gestor de entidades de Netbeans y quiero incorporar un cajón de búsqueda por apellidos. El caso es que consigo llenar el Combobox con los datos, pero despúes no sé como hacer para que al seleccionar un item me muestre el registro asociado. El método que uso para llenar el ComboBox es este:

private void llenarCombo(){
String str;
ComboBusqueda.removeAllItems();
List<cPacientes> listaPacientes = entityManager1.createNamedQuery("cPacientes.findAl lOrdered").getResultList();
for (int x=0;x<listaPacientes.size();x++){
str=listaPacientes.get(x).getApellidos()+", "+listaPacientes.get(x).getNombre()+" ("+listaPacientes.get(x).getIdPacientes().toString ()+")";
ComboBusqueda.addItem(str);
}
ComboBusqueda.setSelectedIndex(-1);
}

¿Alguna ayuda?
Gracias.
  #2 (permalink)  
Antiguo 15/07/2015, 06:20
Avatar de Tipdar  
Fecha de Ingreso: octubre-2005
Ubicación: Aquí y allá.
Mensajes: 323
Antigüedad: 18 años, 6 meses
Puntos: 7
Respuesta: jComboBox de busqueda con JPA

Hola Chemun!

Debes poner un listener para que cuando cambie el estado del combo ejecute la o las acciones que deseas. Sería esto:

Código:
comboBox.addActionListener (new ActionListener () {
	public void actionPerformed(ActionEvent e) {
	      // y aquí haces lo que desees, por ejemplo acceder a la
              // base de datos y buscar la info del registro y mostrarla
	}
});
Espero te sirva
__________________
El último TipdaR
  #3 (permalink)  
Antiguo 15/07/2015, 08:37
 
Fecha de Ingreso: agosto-2008
Mensajes: 10
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: jComboBox de busqueda con JPA

Si, pero a lo que me refería es como hago para identificar cada elemento de la busqueda con su correspondiente de la base de datos. Porque si cojo el getSelectedItem() me devuelve un string. Entonces no sé si es mejor procesar ese string para quedarme con el id y de ahí buscar en la base de datos o si habrá una manera más limpia de hacerlo.
Un saludo.

Chema
  #4 (permalink)  
Antiguo 15/07/2015, 09:29
Avatar de Tipdar  
Fecha de Ingreso: octubre-2005
Ubicación: Aquí y allá.
Mensajes: 323
Antigüedad: 18 años, 6 meses
Puntos: 7
Respuesta: jComboBox de busqueda con JPA

Bueno, bueno, pero eso depende de ti. Si llenas el combo con un arreglo o una lista, o la estructura que sea, pues usas la posición seleccionada:

int pos = comboBox.getSelectedIndex();

y buscas en tu arreglo (arreglo[pos]) o tu lista (lista.get(pos)) el elemento en esa posición.

O bien tomas el valor:

String valor = comboBox.getSelectedItem().toString();

donde valor sería lo que está escrito en el elemento seleccionado y haces una consulta a la base de datos.

select * from persona where nombre='valor'

Hay tantas posibles combinaciones que hasta podríamos hacer una sopa.
__________________
El último TipdaR
  #5 (permalink)  
Antiguo 16/07/2015, 08:39
 
Fecha de Ingreso: agosto-2008
Mensajes: 10
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: jComboBox de busqueda con JPA

Genial, muchas gracias. Al final lo hice cogiendo el string y sacando de ahí el número, porque al tener el combo ordenado por apellidos y la bd por id si no no funcionaba bien.

Ahora tengo otro problema, que ya no tiene que ver. Tengo un botón que modifica el registro actual y después vuelve a llenar el combo para mostrar los cambios que pueda haber en los apellidos. El caso es que me he fijado y la modificación en la base de datos funciona perfecta, pero luego en el combo los cambios no se reflejan, aunque sí coloca el registro en la posicion que le correspondería. ¿Puede ser cosa de la @NamedQuery que obtiene los registros de la BD y los ordena para insertarlos en el combo?
Muchas gracias, y perdón por ser tan pesado.

Chema

Etiquetas: busqueda, jcombobox, jpa, netbeans, string
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 07:24.