Trabajando con las base de datos y extrayendo los datos para su uso con java en post anteriores, ahora necesitamos crear una interfaz de usuario para poder interactuar de una manera sencilla con nuestra aplicacion.
Comenzaremos por ahora solo con mostrar los datos que sacamos de la base de datos MySql, poco a poco se ira perfecconando la aplicacion para tener al final un proyecto bastante complejo y bastante completo.
Comenzaremos por ahora solo con mostrar los datos que sacamos de la base de datos MySql, poco a poco se ira perfecconando la aplicacion para tener al final un proyecto bastante complejo y bastante completo.
Paso1 :
Con el proyecto abierto (contactos) crearemos un nuevo jFrame al que llamaremos "tablaform", a esta nueva ventana le añadiremos los controles JPanel y JTable como se ve en la imagen
al objeto JTable renombraremos a "tabla", la distribucion de los objetos debe quedar asi:Paso 2:
Modificaremos la clase "persona.java", mas concretamente la funcion "getDatos()", los cambios que hicimos fueron para poder leer todos los datos de nuestra tabla
public Object [][] getDatos(){
int registros = 0;
//obtenemos la cantidad de registros existentes en la tabla
try{
PreparedStatement pstm = con.getConnection().prepareStatement("SELECT count(1) as total FROM persona ");
ResultSet res = pstm.executeQuery();
res.next();
registros = res.getInt("total");
res.close();
}catch(SQLException e){
System.out.println(e);
}
Object[][] data = new String[registros][5];
//realizamos la consulta sql y llenamos los datos en "Object"
try{
PreparedStatement pstm = con.getConnection().prepareStatement("SELECT " +
" id, Nombre, appPaterno, appMaterno, mail " +
" FROM persona" +
" ORDER BY id ");
ResultSet res = pstm.executeQuery();
int i = 0;
while(res.next()){
String estCodigo = res.getString("id");
String estNombre = res.getString("nombre");
String estpaterno = res.getString("appPaterno");
String estmaterno = res.getString("appMaterno");
String estmail = res.getString("mail");
data[i][0] = estCodigo;
data[i][1] = estNombre;
data[i][2] = estpaterno;
data[i][3] = estmaterno;
data[i][4] = estmail;
i++;
}
res.close();
}catch(SQLException e){
System.out.println(e);
}
return data;
}
Paso 3:
a nuestro "tablaform", le añadimos "import javax.swing.table.DefaultTableModel;", al jframe le aññadimos la funcion WindowOpened y colocaremos el siguiente codigo:
private void formWindowOpened(java.awt.event.WindowEvent evt) {
//objeto para almacenar datos
Object[][] dtPer;
String[] columNames = {"id","Nombre","ap. Paterno","ap. Materno", "E-Mail"};
// se utiliza la funcion
dtPer = p.getDatos();
// se colocan los datos en la tabla
DefaultTableModel datos = new DefaultTableModel(dtPer,columNames);
tabla.setModel(datos);
}
Ya solo queda ejecutar la aplicacion:
Gloria a Dios! por la vida del creador de este tutorial, he aclarado muchas cosas que tenía en duda. Hasta aqui me ha funcionado, porque dejo de comentarse los cambios a hacer en el main?. en fin, indagando los incorpore y ya carga.
ResponderEliminarde antemano gracias, tengo una dificulta cuando esto invocando el metodo getDatos y pasando ese valor a dtPer = p.getDatos();
ResponderEliminarme dice que no conoce la variable p
que debo hacer?
gracias.
"p" es la extension de la clase persona.java, es que este post es parte de una serie de post donde describia paso a paso como realizar las conexiones a MySQL.
ResponderEliminarte sugiero que leas todos los post o bien bajate el codigo que esta el ejemplo completo del proyecto
Hola muy buenos dias.
ResponderEliminarEs muy bueno el tutorial, la verdad felicitaciones.
Pero tengo el mismo problema que comentó "Anonimo". No me reconoce p, e hice todos los pasos anteriores.
¿Qué puede ser?
"p" es la instancia de clase de la clase "persona.java" si no te reconoce, es porque no rdtsd creando dicha clase
ResponderEliminarMuy buen tutorial. Miles y miles gracias de mi parte. Felicitaciones
ResponderEliminarKevin - Colombia
bueno oye me urge es para un proyecto tengo que mostrar una tabla de access en una tabla de netbeans pero sin usar Mysql me podrias ayudar este es mi correo legacy.love@hotmail.com me urge . Gracias
ResponderEliminarhola como pongo tu proyecto en html?
ResponderEliminarpara problema de que no reconoce la p
ResponderEliminarprivate void formWindowOpened(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
//objeto para almacenar datos
persona p = new persona();
//inserte aqui
//para solucionar el problema de //la p
Object[][] dtPer;