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.