JTable não seta modelo

Ola galera…
criei um metodo para atualizar uma tabela, só q quando faço…

tabela.setModel(modelo);

da pau…

aqui vai os codigos…

[code]public Object[][] getDados()
{
Object[][] dados = new Object[lista.size()][4];
for (int i = 0; i < lista.size(); i++)
{
System.out.println(“getDados()”);
Administrador a = (Administrador)lista.get(i);
dados[i][0] = a.getCodigo();
dados[i][1] = a.getLogin();
dados[i][2] = a.getNome();
dados[i][3] = a.getSenha();
}
return dados;
}

public void atualizaTabela()
{
    DefaultTableModel modelo = (new DefaultTableModel(getDados(), new Administrador().getAtributos().toArray())
    {
    	public boolean isCellEditable(int row, int column) 
        {   
            return false;   
        }
    });
	System.out.println("antes tabela.setModel();");        
    tabela.setModel(modelo); 
	System.out.println("depois tabela.setModel();");
}[/code]

e a saida do programa(com testes):

getDados()
getDados()
getDados()
antes tabela.setModel();
depois tabela.setModel();
INSERT INTO ADMINISTRADOR (LOGIN, NOME, SENHA) VALUES ('sfh', 'dfh', 'dfhj')
getDados()
getDados()
getDados()
getDados()
antes tabela.setModel();
depois tabela.setModel();
DELETE FROM ADMINISTRADOR WHERE CODADMINISTRADOR = 47
banco.deleta(a) -> 0
antes lista.clear()
lista.size() = 4
depois lista.clear()
lista.size() = 0
lista = new Banco().getAdministrador();
lista.size() = 3
antes atualizaTabela()
getDados()
getDados()
getDados()
antes tabela.setModel();
Exception occurred during event dispatching:
java.lang.ArrayIndexOutOfBoundsException: -1
    at java.util.Vector.elementAt(Vector.java:430)
    at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:632)
    at javax.swing.JTable.getValueAt(JTable.java:2638)
    at cadAdministrador$TableSelectionListener.valueChanged(cadAdministrador.java:355)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:147)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:194)
    at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:388)
    at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:398)
    at javax.swing.DefaultListSelectionModel.removeSelectionIntervalImpl(DefaultListSelectionModel.java:559)
    at javax.swing.DefaultListSelectionModel.clearSelection(DefaultListSelectionModel.java:403)
    at javax.swing.JTable.clearSelection(JTable.java:2022)
    at javax.swing.JTable.clearSelectionAndLeadAnchor(JTable.java:2030)
    at javax.swing.JTable.tableChanged(JTable.java:4307)
    at javax.swing.JTable.setModel(JTable.java:3625)
    at cadAdministrador.atualizaTabela(cadAdministrador.java:341)
    at cadAdministrador$2.actionPerformed(cadAdministrador.java:132)
    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:6038)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
    at java.awt.Component.processEvent(Component.java:5803)
    at java.awt.Container.processEvent(Container.java:2058)
    at java.awt.Component.dispatchEventImpl(Component.java:4410)
    at java.awt.Container.dispatchEventImpl(Container.java:2116)
    at java.awt.Component.dispatchEvent(Component.java:4240)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
    at java.awt.Container.dispatchEventImpl(Container.java:2102)
    at java.awt.Window.dispatchEventImpl(Window.java:2429)
    at java.awt.Component.dispatchEvent(Component.java:4240)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:177)
    at java.awt.Dialog$1.run(Dialog.java:1039)
    at java.awt.Dialog$3.run(Dialog.java:1091)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Dialog.show(Dialog.java:1089)
    at java.awt.Component.show(Component.java:1419)
    at java.awt.Component.setVisible(Component.java:1372)
    at java.awt.Window.setVisible(Window.java:801)
    at java.awt.Dialog.setVisible(Dialog.java:979)
    at AZno$4.actionPerformed(AZno.java:186)
    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.AbstractButton.doClick(AbstractButton.java:357)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1216)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1257)
    at java.awt.Component.processMouseEvent(Component.java:6038)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
    at java.awt.Component.processEvent(Component.java:5803)
    at java.awt.Container.processEvent(Container.java:2058)
    at java.awt.Component.dispatchEventImpl(Component.java:4410)
    at java.awt.Container.dispatchEventImpl(Container.java:2116)
    at java.awt.Component.dispatchEvent(Component.java:4240)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
    at java.awt.Container.dispatchEventImpl(Container.java:2102)
    at java.awt.Window.dispatchEventImpl(Window.java:2429)
    at java.awt.Component.dispatchEvent(Component.java:4240)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

se alguem puder dar uma maozinha ai…

obrigado

Cara você esta estourando o Array.

Da uma olhadinha aqui : http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#simple

Não use o DefaultTableModel.
Repetindo:
Não use o DefaultTableModel.
Mais uma vez:
Não use o DefaultTableModel.

No lugar disso, aprenda a fazer direito o seu próprio TableModel.
Aqui está um artigo ótimo, que ensina direitinho como fazer isso:
http://www.informit.com/articles/article.aspx?p=332278

Se depois quiser deixar a tabela editável, também leia esse artigo aqui:
http://www.informit.com/articles/article.aspx?p=333472