Problema na hora de listar na tabela

Ola galera, por favor vcs podem me ajudar nessa…
Não estou conseguindo listar na tabela, preciso muito dessa ajuda, obrigado
Segue abaixo os códigos

Minha Tabela Modelo

public class MinhaTableModel extends AbstractTableModel {

    private String[] tituloColunas;
    private Object[][] data;
    private int linhas, colunas;

    public MinhaTableModel(String[] tituloColunas, int numLinhas, int numColunas) {
        this.tituloColunas = tituloColunas;
        this.data = new Object[numLinhas][numColunas];
        linhas = numLinhas;
        colunas = numColunas;
    }

    public String getColumnName(int col) {
        return tituloColunas[col];
    }

    @Override
    public int getRowCount() {
        return linhas;
    }

    @Override
    public int getColumnCount() {
        return colunas;
    }

    @Override
    public Object getValueAt(int linha, int coluna) {
        return data[linha][coluna];
    }

    public void setValueAt(Object valor, int linha, int coluna) {
        data[linha][coluna] = valor.toString();
        fireTableCellUpdated(linha, coluna);
    }
}

Agora meu método de listar

[code]
List lista = new ArrayList();
int i = 0;

public void Listar() {

    Session s = HibernateUtil.getSessionFactory().getCurrentSession();



    JScrollPane jsp = new JScrollPane();

    i = 0;

    //   String aux = jTAluno.getText();
    s.beginTransaction();

    StringBuilder hql = new StringBuilder();
    hql.append("from Funcionario");

    org.hibernate.Query q = s.createQuery(hql.toString());

    lista = q.list();

    for (Funcionario f : lista) {
        //  JOptionPane.showMessageDialog(null, "Nome: " + a.getNome() + "\n " + "CPF: " + a.getCpfAluno());
        jTable.setValueAt(f.getNome(), i, 0);
        jTable.setValueAt(f.getIdFuncionario(), i, i);

        jTable.setValueAt(f.getCpfFuncionario(), i, 1);
        jTable.setValueAt(f.getEmail(), i, 2);


        i++;
    }

    i = 0;
    //jsp.setViewportView(jTable);


    jsp.setAutoscrolls(true);
    jTable.setAutoCreateRowSorter(true);

}[/code]

Ai esta dando esse erro
INFO: Not binding factory to JNDI, no JNDI name configured
Exception in thread “AWT-EventQueue-0” java.lang.ArrayIndexOutOfBoundsException: 0
at MinhaTableModel.setValueAt(MinhaTableModel.java:45)
at javax.swing.JTable.setValueAt(JTable.java:2710)
at PesqFuncionario.Listar(PesqFuncionario.java:58)
at PesqFuncionario.jBPesquisarActionPerformed(PesqFuncionario.java:447)
at PesqFuncionario.access$500(PesqFuncionario.java:24)
at PesqFuncionario$6.actionPerformed(PesqFuncionario.java:207)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6289)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6054)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Em algum lugar você chama a posição 0 de um array sem elementos.

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 

Este algum lugar é neste lugar

at MinhaTableModel.setValueAt(MinhaTableModel.java:45)

Esse é o lugar onde disse que não esta passando parâmetro. Mas ainda não consegui achar o erro não :confused:

 public void setValueAt(Object valor, int linha, int coluna) {   
        data[linha][coluna] = valor.toString();   
        fireTableCellUpdated(linha, coluna);   
    }   
}  

Posta as linhas 43 a 48 da classe MinhaTableModel

Segue abaixo o código

[code]@Override
public Object getValueAt(int linha, int coluna) {
return data[linha][coluna];
}

public void setValueAt(Object valor, int linha, int coluna) {   
    data[linha][coluna] = valor.toString();   
    fireTableCellUpdated(linha, coluna);   
}   

[/code]

O objeto data[][] está nulo.

Hum, vou da uma olhada aki. Vlw

Corrigindo, não está nulo, mas, não tem dados em nenhuma posição.

Mas no código abaixo eu estou inserindo no array

[code]for (Funcionario f : lista) {
jTable.setValueAt(f.getNome(), i, 0);
jTable.setValueAt(f.getIdFuncionario(), i, 1);
jTable.setValueAt(f.getCpfFuncionario(), i, 2);
jTable.setValueAt(f.getEmail(), i, 3);

        i++;   
    }   

[/code]

Bom, as minhas TableModel eu prefiro usar Lists. É mais maleável e menos problemática que um array de 2 dimensóes.