Problemas con JTable y CachedRowSet
-Hola gente, antes que nada los saludo a todos, es mi primer post en esta web, y soy principiante, quiero compartir el siguiente problema, tengo 3 paquetes en mi proyecto, el modelo con la clase(Producto), sql(conexión), y UI(clase, ProductosUI, tengo toda la interfaz excepto el JTable que lo tengo en esta clase PanelProductos dentro del paquete UI por supuesto). De la forma anterior estructure mi proyecto. Quiero saber que opinan. Les muestro el código de la clase ProductoPanel. Mi problema es que al inicializar esta clase que mostraría la tabla y sus productos, a través de ProductosUI, no se muestra la tabla en la ventana de la aplicación, no aparece absolutamente nada. La tabla esta puesta en el diseño perfectamente, al ejecutarlo es el problema, no se muestra. Alguno me podrá ayudar? Abrazos. :)
public class tablaPanel extends JPanel{
private JFrame frame;
private JTable tbl;
private DefaultTableModel modelo;
private Connection conn;
private CachedRowSetImpl crs;
private Conexion con;
private JScrollPane jsc;
/**
* @throws ClassNotFoundException
* @wbp.parser.entryPoint
*/
public ProductoPanel() throws ClassNotFoundException{
try {
JScrollPane scroll = new JScrollPane();
Class.forName("org.apache.derby.jdbc.ClientDriver");
conn = DriverManager.getConnection("jdbc:derby://localhost:1527/productos");
Statement p = conn.createStatement();
ResultSet rs = p.executeQuery("SELECT * FROM productos");
crs = new CachedRowSetImpl();
crs.populate(rs);
modelo = new DefaultTableModel();
jsc = new JScrollPane();
llenarTabla(crs,modelo,jsc);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void llenarTabla(CachedRowSet crs, DefaultTableModel modelo,JScrollPane jsc)
{
try
{
JTable tbl = new JTable();
ResultSetMetaData rsmd = crs.getMetaData();
int numCols = rsmd.getColumnCount();
modelo.setRowCount(0);
Object []datos = new Object[numCols];
while (crs.next())
{
for (int i=0;i<numCols;i++)
{
datos=crs.getObject(i+1);
}
modelo.addRow(datos);
}
tbl.setModel(modelo);
jsc.setViewportView(tbl);
crs.close();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
}