Hola a todos amigos de foros del web, soy nuevo en java y tengo un problema tratando de obtener los campos de una tabla CATEGORIA(codigo_categoria, nombre) para mostralo en una JTable, lo "curioso" del asunto es que si puedo mostrar las categorias en una jComboBox pero no puedo mostrarlos en el JTable.
Aquí el código de las clases:
================================================== ==========
public class _Categoria {
private int codigo;
private String nombre;
//con sus respectivos JavaBeans además de sobreescribir el método ToString, porque sino muestra información incorrecta en el JComboBox
Override
public String toString(){
return this.getNombre();
}
}
================================================== ==========
public interface _GeneralDao {
//una interfaz con los metodos para hacer los mantenedores de las tablas
public void ingresar(Object object) throws SQLException;
public void retirar(int codigo) throws SQLException;
public void actualizar(Object object)throws SQLException;
public Object buscar(int codigo)throws SQLException;
}
================================================== ==========
public interface _CategoriaDao extends _GeneralDao{
//una intefaz que hereda de _GeneralDao con métodos específicos, en este caso declaro el método obtenerListaCategoria() para listear todas las categorias
public Vector obtenerListaCategoria() throws SQLException;
}
================================================== ==========
public class _CategoriaDaoImpl implements _CategoriaDao{
//el método obtenerListaCategoria() es para listear todas las categorías
private Connection con=null;
public _CategoriaDaoImpl(Connection con){
this.con=con;
}
public Vector obtenerListaCategoria() throws SQLException {
Vector listaCategoria=new Vector();
String sql="SELECT CODIGO_CATEGORIA, NOMBRE FROM CATEGORIA";
Statement stm=con.createStatement();
ResultSet rs=stm.executeQuery(sql);
while(rs.next()){
_Categoria categoria=new _Categoria();
categoria.setCodigo(rs.getInt("CODIGO_CATEGORIA")) ;
categoria.setNombre(rs.getString("NOMBRE"));
listaCategoria.add(categoria);
}
return listaCategoria;
}
================================================== ==========
public class _CategoriaLogic {
//2 métodos, el primero listea en el JComboBox1 bien!!!!, el segundo intenta hacer lo mismo.
public static DefaultComboBoxModel obtenerModeloCategoria() throws Exception {
DefaultComboBoxModel categoriaComboModel=null;
try{
Connection con=_Conexion.getConnection();
_CategoriaDao categoriaDao=new _CategoriaDaoImpl(con);
Vector vectorCategoria=categoriaDao.obtenerListaCategoria ();
categoriaComboModel=new DefaultComboBoxModel(vectorCategoria);
}catch(Exception e){
e.printStackTrace();
throw e;
}
return categoriaComboModel;
}
public static DefaultTableModel obtenerListaCateModel() throws Exception{
DefaultTableModel cateTableModel=null;
Connection con=null;
try {
con=_Conexion.getConnection();
_CategoriaDao productoDaos=new _CategoriaDaoImpl(con);
Vector datos=productoDaos.obtenerListaCategoria();// .obtenerListaProducto(codigoCategoria);
Vector columnas=new Vector();
columnas.add("CODIGO");
columnas.add("NOMBRE");
cateTableModel =new DefaultTableModel(datos,columnas);
} catch (Exception e) {
throw e;
} finally{
if(con!=null)
con.close();
}
return cateTableModel;
}
}
}
================================================== ==========
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// aca obtengo el modelo del jTable, pero sale el error
try {
tableModelCate=_CategoriaLogic.obtenerListaCateMod el();
jTable1.setModel(tableModelCate);
//obtenerListaCateModel(jTable1);
} catch (Exception e) {
e.printStackTrace();
}
}
================================================== ==========
//ERROR: JAVA.LANG.CLASSCASTEXCEPTION: AVICOLA.SISVENTA.MODELO.BEAN._CATEGORIA CANNOT BE CAST TO
JAVA.UTIL.VECTOR
Al parecer es un error de "casteo" pero nose ni donde debo hacer eso, ni por qué, pues para mostrar los datos en el
JComboBox no necesité :/ Ayúdenme porfavor :(