bouil.org

vendredi 11 décembre 2009

Sommaire

Google Reader Shared

ResultSetTableModel

Ce petit bout de code permet d'afficher dans javax.swing.JTable le résultat d'un requête SQL. Il suffit pour l'utiliser, de placer le code suivant :

monJTable.setModel(new ResultSetTableModel(monResultSet));

Et le code contenant le modèle, à mettre dans un fichier à part, ResultSetTableModel.java :

import java.sql.*;
import javax.swing.*;
import javax.swing.table.*;
import java.util.*;
public class ResultSetTableModel extends AbstractTableModel{
    private ResultSet rs = null;
    public ResultSetTableModel(ResultSet _rs){
        rs = _rs;
    }
    
    public String getColumnName(int col)
    {
        try{
            return rs.getMetaData().getColumnName(col + 1);
        }
        catch (SQLException e){
            return Integer.toString(col);
        }
    }
    
    public int getColumnCount(){
        int i = 0;
        try{
            i = rs.getMetaData().getColumnCount();
        }
        catch(SQLException e){
            System.err.println("getColumnCount() : " + e);
        }
        return i;
    }
    
    public int getRowCount(){
        int i = 0;
        try{
            rs.last();
            i = rs.getRow();
        }
        catch(SQLException e){
            System.err.println("getRowCount() : " + e); 
        }
        return i;
    }
    public Object getValueAt(int row,int column){
        Object o = "";
        try{
            rs.absolute(row + 1);
            o = rs.getObject(column + 1);
        }
        catch(SQLException e){
            System.err.println("getValueAt() : " +e);
        }
        return o;
    }
}