Hola tengo un pequeño problema con un JTable la cosa es que lleno cada casillero del JTable pero no se ponen los nombres de las columnas me gustaría si me pudieran ayudar desde ta muchas gracias :) les dejo el código fuente de la clase donde esta el JTable.
PD:cabe resaltar que es con peticion a una base de datos de mysql.
CODIGO:
package entrega3;
import java.sql.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.*;
public class Mostrar extends JFrame{
public Mostrar(){
setLayout(null);
setTitle("Bienvenido a mostrar");
setResizable(false);
setIconImage(new ImageIcon(getClass().getResource("/Imagenes/icono.jpg")).getImage());
((JPanel)getContentPane()).setOpaque(false);
ImageIcon uno=new ImageIcon(this.getClass().getResource("/imagenes/fondo.jpg"));
JLabel fondo=new JLabel();
fondo.setIcon(uno);
getLayeredPane().add(fondo,JLayeredPane.FRAME_CONTENT_LAYER);
fondo.setBounds(0,0,450,350);
try{//codigo que es probable que ocurra algun tipo de error
Class.forName("com.mysql.jdbc.Driver");//importacion del driver
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/proyecto?user=root&password=");//en donde se hubuica la base de datos y usuario y pass paraacceder
Statement stm =con.createStatement();//crear objeto statement
ResultSet rs =stm.executeQuery("select * from libros");//peticion a la base y asociasion a el result set delresultado de la peticion
ResultSetMetaData metaDatos = rs.getMetaData();//result set para los metadatos de la consulta a la base de datos
DefaultTableModel modelo=new DefaultTableModel();//crear el modelo de la tabla
int numeroColumnas=metaDatos.getColumnCount();//guarda la cantidad de columnas devueltas por el result set de los meta datos
Object[] etiquetas=new Object[numeroColumnas];//creo un array para los titulos de las columnas
for (int i=0; i<numeroColumnas;i++){//recorre el array
etiquetas=metaDatos.getColumnLabel(i+1);//asocia en el array los nombres en orden de las colmnas de la tabla
}
modelo.setColumnIdentifiers(etiquetas);//pone al modelo de ta tabla los identificadores puestos en el array etiquetas
while(rs.next()){//bucle para los resultados del resultset
Object [] fila = new Object[numeroColumnas];//crea un array para cada una de las filas
for (int i=0;i<numeroColumnas;i++){//recorrer el array y llenarlo
fila = rs.getObject(i+1); //pone en cada pocision del array los datosdevueltos por el result set
}
modelo.addRow(fila);//coloca una fila nueva con los datos devueltos del resultset
}
JTable tabla = new JTable(modelo);//crea la tabla y le asocia el modelo de la tabla
tabla.setBounds(10,10,425,300);//pocisionamiento y tamaño de la tabla
add(tabla);//coloca la tabla
}catch(ClassNotFoundException|SQLException e){//control de excepciones
JOptionPane.showMessageDialog(null,"Error en la peticion a la base de datos","Error",JOptionPane.WARNING_MESSAGE);//que hacer en caso de una excepcion
}
}
}