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;
    }
}

(c) Nicolas Bouillon