Buenas noches, estoy haciendo un crud en eclipse y tengo un problema, resulta que tengo una tabla llamada categoría, la cual cuenta con un id y un nombre, luego viene una tabla producto la cual cuenta con un código, idcategoria(foranea de catecorio) y un nombre.. en el formulario de producto tengo un jcombobox que me lista las categorias, pero como la idea es que no sean categorías en orden 1,2,3,4, hice que el index del combo obtenga el id de la categoría para poder almacenar si del id 4 pasa al 100 como en mi caso.. Ahora el problema es que me guarda, actualiza y elimina, pero no me busca, ya que al buscar convierte el index del combobox al id de la categoria, entonces con las 1,2,3,4 funciona bien, pero al momento de buscar un producto cuya categoria es 100 me da error
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: setSelectedIndex: 123 out of bounds
entonces no se como hacer que el boton buscar me funcione bien en el combobox, de antemano muchas gracias, espero me puedan ayudar con esa duda. dejare mi metodo buscar....
metodo creado en una clase aparte del farma
public void Buscar(int id) throws ClassNotFoundException{ Connection conn = null; String sql = "CALL uspSelectOneProducto ("+id+")"; try { conn = c.conectar(); PreparedStatement p = (PreparedStatement) conn.prepareStatement(sql); ResultSet resultado = p.executeQuery(); if (resultado.next()==true) { categoria = resultado.getInt("idCategoria"); nombre = resultado.getString("nombre"); } else { JOptionPane.showMessageDialog(null, "No existe ningun producto con ese codigo en nuestra base de datos"); } p.close(); } catch(SQLException ex){ JOptionPane.showMessageDialog(null, ex.toString()); } }
Metodo creado en el frame public void Buscar(){ try{ if("".equals(txtCodigo.getText())){ JOptionPane.showMessageDialog(null, "Ingrese el codigo del producto"); txtCodigo.hasFocus(); } else{ int id = Integer.parseInt(txtCodigo.getText()); MetodosProductos log = new MetodosProductos(); log.Buscar(id); cbCategoria.setSelectedIndex(log.getCategoria()); txtNombre.setText(log.getNombre()); } } catch(ClassNotFoundException ex){ JOptionPane.showMessageDialog(null, ex.getMessage()); } }
Buenas noches, estoy haciendo un crud en eclipse y tengo un problema, resulta que tengo una tabla llamada categoría, la cual cuenta con un id y un nombre, luego viene una tabla producto la cual cuenta con un código, idcategoria(foranea de catecorio) y un nombre..
en el formulario de producto tengo un jcombobox que me lista las categorias, pero como la idea es que no sean categorías en orden 1,2,3,4, hice que el index del combo obtenga el id de la categoría para poder almacenar si del id 4 pasa al 100 como en mi caso..
Ahora el problema es que me guarda, actualiza y elimina, pero no me busca, ya que al buscar convierte el index del combobox al id de la categoria, entonces con las 1,2,3,4 funciona bien, pero al momento de buscar un producto cuya categoria es 100 me da error
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: setSelectedIndex: 123 out of bounds
entonces no se como hacer que el boton buscar me funcione bien en el combobox, de antemano muchas gracias, espero me puedan ayudar con esa duda. dejare mi metodo buscar....
metodo creado en una clase aparte del farma
public void Buscar(int id) throws ClassNotFoundException{
Connection conn = null;
String sql = "CALL uspSelectOneProducto ("+id+")";
try {
conn = c.conectar();
PreparedStatement p = (PreparedStatement) conn.prepareStatement(sql);
ResultSet resultado = p.executeQuery();
if (resultado.next()==true) {
categoria = resultado.getInt("idCategoria");
nombre = resultado.getString("nombre");
} else {
JOptionPane.showMessageDialog(null, "No existe ningun producto con ese codigo en nuestra base de datos");
}
p.close();
} catch(SQLException ex){
JOptionPane.showMessageDialog(null, ex.toString());
}
}
Metodo creado en el frame
public void Buscar(){
try{
if("".equals(txtCodigo.getText())){
JOptionPane.showMessageDialog(null, "Ingrese el codigo del producto");
txtCodigo.hasFocus();
}
else{
int id = Integer.parseInt(txtCodigo.getText());
MetodosProductos log = new MetodosProductos();
log.Buscar(id);
cbCategoria.setSelectedIndex(log.getCategoria());
txtNombre.setText(log.getNombre());
}
}
catch(ClassNotFoundException ex){
JOptionPane.showMessageDialog(null, ex.getMessage());
}
}