martes, 4 de diciembre de 2007

AbstractTableModel con Resultset

//miModeloTabla.java
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
public class miModeloTabla extends AbstractTableModel{
ResultSet rs;
ResultSetMetaData rsmd;
public String getColumnName( int c ) {
try {
if ( rsmd != null )
return rsmd.getColumnName(c + 1);
return "";
}
catch(SQLException e) { e.printStackTrace(); return ""; }
}
/*************** getColumnCount() ******************/
public int getColumnCount() {
try {
if ( rsmd != null )
return rsmd.getColumnCount();
return 0;
}
catch(SQLException e) { e.printStackTrace(); return 0; }
}
/****************** getRowCount() *******************/
public int getRowCount() {
try {
if ( rs != null ) {
rs.last(); // Nos situamos en la última fila
return rs.getRow(); // Devolvemos el número de la fila
}
return 0;
}
catch(SQLException e) { e.printStackTrace(); return 0; }
}
/******************* getValueAt() *********************/
public Object getValueAt( int fila, int col ) {
try {
if ( rs != null ) {
rs.absolute( fila + 1 );
return rs.getObject( col + 1 );
}
return "";
}
catch(SQLException e) { e.printStackTrace(); return null; }
}
}

//ejemplo1.java
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class ejemplo1 extends JFrame{
Statement stat;
public ejemplo1(){
setSize(400, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
getContentPane().setLayout(new BorderLayout());
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection cn=DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=dat/tienda.mdb");
stat = cn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE );
ResultSet rs=stat.executeQuery("select * from cliente");
MiModeloTabla m=new MiModeloTabla();
m.rs=rs;
m.rsmd=rs.getMetaData();
JTable t=new JTable(m);
JScrollPane sp=new JScrollPane(t);
getContentPane().add(sp,BorderLayout.CENTER);
}
catch(Exception e){
System.out.println("Errorrrrr");
}
}
public static void main(String[] args) {
new ejemplo1().setVisible(true);
}
}

3 comentarios:

aldude dijo...

aa

daniel dijo...

y los encabezados.. ???
esta buenisimo

gracias.

daniel dijo...

y los encabezados.. ???
esta buenisimo

gracias.