Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/06/2010, 23:05
Jaden010
 
Fecha de Ingreso: junio-2010
Mensajes: 25
Antigüedad: 13 años, 10 meses
Puntos: 0
JTable Problem

Buenas noches, soy niubi en Java y este es mi primer post en este foro, está muy bueno ^^

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:
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();
        }
    }
}
é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?

Disculpen mi poco concocimiento, es que estoy recien empezando :$

Gracias de antemano

Saludos.