|
 |

19-sep-2008, 02:40
|
 |
Principiante
|
|
Fecha de Ingreso: septiembre-2008
País:
Mensajes: 7
Agradecimientos: 0
Le agradecieron 0 veces
Poder de Credibilidad: 0
|
|
JAVA y MySQL - Llenar un JComboBox con datos textuales, pero tomar su valor numérico
Un saludo a toda la gente del foro. Soy nuevo por aquí y también nuevo en el mundo de la programacion JAVA. Espero que esta opcion (Java avanzado) sea la mejor para este tema.
Mi consulta es la siguiente: Como hacer para llenar un jComboBox con datos textuales, pero a la vez guardar un dato numérico, y al escoger uno de los items solo coger el dato numérico.
Por ejemplo, tener un jComboBox con los nombres de las categorias de productos, pero al escoger una categoria; pasar el código de la categoría y no el nombre.
Los datos quisiera llenarlos, mediante una clase, que se conecte a la Base de datos MySQL y traiga tanto el nombre y el codigo del la tabla categoria.
Otra pregunta, la opcion DefaultComboBoxModel, tiene alguna opcion para trabajar de mejor forma, el caso propuesto anteriormente.
Por sus respuestas muchas gracias. LuisAlb
|
| Entre a los Links relacionados |
|
|

23-sep-2008, 19:10
|
 |
Principiante
|
|
Fecha de Ingreso: septiembre-2008
País:
Mensajes: 3
Agradecimientos: 0
Le agradecieron 0 veces
Poder de Credibilidad: 0
|
|
Hola, según lo que entendí lo que necesitas es una de las siguientes opciones:
A. Puedes Guardar el código seguido de un símbolo especial que elijas por ejemplo un guión (-) y luego el nombre. Entonces tomas el texto que quieras en este caso el código con un metodo de la clase String ej.
Código Java:
codigo=texto.substring(0,indexOf('-'))
B.Puedes guardar el nombre solamente y después cuando se escoja un item entonces haces una consulta que te devuelva el codigo a partir del nombre ej.
Código Java:
select codigo from tabla where nombre='combobox.getSelectItem()';
espero te sirva!
saludos!!!
Última edición por ziniestro; 12-jun-2010 a las 03:30
Razón: El código Java va entre las llaves [PHP] y [/PHP] ...gracias! ;)
|

23-sep-2008, 19:23
|
 |
Principiante
|
|
Fecha de Ingreso: septiembre-2008
País:
Mensajes: 3
Agradecimientos: 0
Le agradecieron 0 veces
Poder de Credibilidad: 0
|
|
JComboBox con base de datos
Hola!
puedes guardar el nombre solamente en el JComboBox y luego cuando se escoja un Item entonces mandas una consulta a la base de datos que a partir de ese nombre extraiga el codigo correspondiente ej. "select codigo from tabla where nombre='JComboBox.getSelectedItem()"
o también puedes guardar el codigo y el nombre en el JComboBox y separarlo con algún caracter por ej. el guión ('-') y entonces puedes extraer el codigo de la siguiente forma:
Código Java:
String texto=JComboBox.getSelectItem(); String codigo=texto.subString(0,indexOf('-'));
donde 0 es el indice del caracter inicial a buscar y indexOf('-') te devuelve el indice donde se encuentra el guión y subString toma el string entre estos dos indices
Saludos
Última edición por danis; 22-jul-2009 a las 12:41
Razón: El código va entre las llaves [CODE] y [/CODE] ;)
|

27-sep-2008, 15:40
|
 |
Principiante
|
|
Fecha de Ingreso: septiembre-2008
País:
Mensajes: 52
Agradecimientos: 0
Le agradecieron 15 veces
Poder de Credibilidad: 91
|
|
O tb podrias almacenar los nombres en un arreglo y ese arreglo le pasas al combobox y los codigos en otro arreglo asi digamos el elemento 0 del arreglo de nombres tiene como codigo al elemento 0 del areglo de codigos
|

18-jun-2009, 17:31
|
 |
Principiante
|
|
Fecha de Ingreso: junio-2009
País:
Mensajes: 1
Agradecimientos: 0
Le agradecieron 0 veces
Poder de Credibilidad: 0
|
|
Hola puedes hacer un objeto que contenga un string para el texto y un integer para el numero, por ejemplo, este objecto debe tener implementado el metodo equals y el metodo toString, en donde en el metodo toString retornas el texto, y en el metodo equals vos veras cuando son iguales, una vez que hagas esto, carga el combo con este objeto, y listo, cuando veas el combobox te mostrara el texto, y cuando selecciones el item, el metodo comboBox.getSelectedItem(), este metodo te da un Object, a ese objeto lo casteas al objeto que creaste y ahi tenes la informacion que necesitas. espero que se entienda saludos
|

12-jun-2010, 01:01
|
 |
Principiante
|
|
Fecha de Ingreso: mayo-2010
País:
Mensajes: 11
Agradecimientos: 0
Le agradecieron una vez
Poder de Credibilidad: 0
|
|
Mira Yo lo Hago de esta manera y funciona perfectamente
me declaro una variable general asi
Código Java:
private List<Integer> id; luego en el constructor lo creas public constructor(){ id = new ArrayList<Integer>(); }
Luego Tengo un Metodo que me carga mediante un defaultablemodel
private void listarTipoUsuario() { try { /*Bueno yo cargo de esta manera mi aplicacion es cliente servidor*/ /*Pero tu lo puedes hacer de otra manera la idea es que metas mediante una consulta los datos de tu BD en un modelo como yo lo hago
*/
DefaultTableModel modelo = Oconectar.Conectar().CargarTipoUsuario(); /*En el CargarTipoUsuario llamo a un procedimiento almacenado Pero haslo a tu modo esto solo es un ejemplo */
/*Y aqui va el chiste
Una ves que tengo el los registros cargados en el modelo lo que hago es recorrer el modelo con un for añadir a mi lista ID como esta abajo la fila y columna y despues cargo en el jcombobox el nombre del campo la fila y columna con sus respectivos valores */
for (int i = 0; i < modelo.getRowCount(); i++) { id.add(Integer.valueOf(modelo.getValueAt(i, 0).toString())); jCombobox1.addItem(modelo.getValueAt(i, 1)); } } catch (RemoteException ex) { Logger.getLogger(DialogUsuario.class.getName()).log(Level.SEVERE, null, ex); JOptionPane.showConfirmDialog(this, "No se pudo cargar Los tipos de usuario...", "Error...", JOptionPane.ERROR_MESSAGE); } }
y para insertar en la Bd
es de esta manera
Código Java:
int idxxxxx = id.get(jCombobox1.getSelectedIndex());
y ya tienes recuperado el " id "
y ahora puedes insertarle ya teniendo el valor de Id
Espero me ayas entendido
Pero esa es la idea
XD:
Última edición por ziniestro; 12-jun-2010 a las 03:30
Razón: El código Java va entre las llaves [PHP] y [/PHP] ...gracias! ;)
|

12-jun-2010, 01:05
|
 |
Principiante
|
|
Fecha de Ingreso: mayo-2010
País:
Mensajes: 11
Agradecimientos: 0
Le agradecieron una vez
Poder de Credibilidad: 0
|
|
sorri
Jejeje Y se me olvidada decirte que llames al metodo
Código Java:
public constructor(){ . . . .
id = new ArrayList<Integer>(); listarTipoUsuario(); }
Última edición por ziniestro; 12-jun-2010 a las 03:33
Razón: El código Java va entre las llaves [PHP] y [/PHP] ...gracias! ;)
|

12-jun-2010, 20:49
|
 |
Principiante
|
|
Fecha de Ingreso: junio-2010
País:
Mensajes: 51
Agradecimientos: 0
Le agradecieron 8 veces
Poder de Credibilidad: 140
|
|
Creo q esto es el mismo problema ya arreglado en otra parte del foro:
http://www.forodejava.com/showthread...=8445#post8445
|

14-jun-2010, 04:52
|
 |
Principiante
|
|
Fecha de Ingreso: septiembre-2009
País:
Mensajes: 22
Agradecimientos: 0
Le agradecieron 3 veces
Poder de Credibilidad: 0
|
|
olle pana si lo que quieres es llenar un combo box con los campos de una tabla en tu base de datos has lo siguiente create un arraylist<> donde cargaras los datos por ejemplo si tienes una clase Evento el arrayList<Evento>eventos; asi lo declaras haces un select a la base de datos donde te traiga lo que quieres y a ese arrayList le agrega lo que te devuelve
luego en el combo box solo recorre ese arreglo asi for(Evento e :llama al getDeTUaRRAYLIS){
jcombobox.addItem(le pasas a e.lo que quieras);
}
|
| Herramientas |
Buscar en Tema |
|
|
|
| Desplegado |
Mode Lineal
|
Normas de Publicación
|
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes
El Código HTML está Desactivado
|
|
|
|
 |
|
 |
La franja horaria es GMT. Ahora son las 05:42.
|
 |