Les cuento, necesito realizar unos reportes en JTable.
Primero que nada el profe nos hizo hacer un jtable pero en applet. La cosa ahora es que necesito hacerlo en un frame y no sé hacerlo xD.
el código:
Código:
éste es con applet y me resulta, pero al hacerlo en el frame no, la parte de insertar las columnas y filas lo realizo en el constructor de la clase (el frame), pero no tengo resultados, no me aparece nada. Que debo hacer?import javax.swing.*; import javax.swing.table.*; import java.sql.*; public class Reporte_JTable extends JApplet { private java.sql.Connection conexion; private java.sql.Statement sentenciaSQL; private java.sql.ResultSet resultado; public void conectar()throws java.sql.SQLException { try { //cargar el driver para JDBC y motor MySQL String controlador = "com.mysql.jdbc.Driver"; Class.forName(controlador); }//cierre del bloque try catch(ClassNotFoundException ex) { JOptionPane.showMessageDialog(null, "no se pudo cargar el driver JDBC", "Aviso Carga Driver", JOptionPane.ERROR_MESSAGE); ex.printStackTrace(); //muestra el detalle de error en consola } //nombre del servidor y puerto a utilizar + Base de Datos String URL_bd = "jdbc:mysql://localhost:3306/remuneracion"; String usuario = "root"; String contraseña = ""; //depende de como entre a mysql //conectar con la base de datos conexion = java.sql.DriverManager.getConnection(URL_bd,usuario,contraseña); //habilitarsentencias SQL sentenciaSQL = conexion.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_UPDATABLE); JOptionPane.showMessageDialog(null, "Conexion Realizada con exito", "Aviso Conexion con Base de Datos", JOptionPane.INFORMATION_MESSAGE); }//cierre el metodo conectar Object [] data = new Object [3]; //Crear objeto del modelo a usar DefaultTableModel defaulttablemodel = new DefaultTableModel(); //Crear el objeto JTable, para visualizar los //Modelo JTable jtable = new JTable (defaulttablemodel); @Override public void init() { try { conectar(); } catch(SQLException ex) { JOptionPane.showMessageDialog(null, "Conexion a Base de Datos Fallida", "Aviso Conexion con Base de Datos", JOptionPane.ERROR_MESSAGE); ex.printStackTrace(); } try { System.out.println("paso 1"); resultado = sentenciaSQL.executeQuery("SELECT * FROM sueldo order by nombre"); } catch(SQLException ex) { JOptionPane.showMessageDialog(null, "Query ha fallado", "Aviso Conexion con Base de Datos", JOptionPane.ERROR_MESSAGE); ex.printStackTrace(); } System.out.println("paso 2"); for(int column = 0; column < 3; column++){ if(column == 0) defaulttablemodel.addColumn("Ficha"); if(column == 0) defaulttablemodel.addColumn("Nombre"); if(column == 0) defaulttablemodel.addColumn("Sueldo Base"); } try { System.out.println("paso 3"); for(int row = 0; row <6; row++){ while(resultado.next()) { System.out.println("paso 5"); for(int column = 0; column < 3; column++){ System.out.println("paso 4"); if(column == 0) data[column] = resultado.getString("ficha"); if(column == 1) data[column] = resultado.getString("nombre"); if(column == 2) data[column] = resultado.getString("sueldo_base"); } System.out.println("paso 6"); defaulttablemodel.addRow(data); } } System.out.println("paso 7"); getContentPane().add(new JScrollPane(jtable)); } catch(SQLException ex) { JOptionPane.showMessageDialog(null, "Query ha fallado", "Aviso Conexion con Base de Datos", JOptionPane.ERROR_MESSAGE); ex.printStackTrace(); } } }
Disculpen mi poco concocimiento, es que estoy recien empezando :$
Gracias de antemano
Saludos.