Ola galera…
criei um metodo para atualizar uma tabela, só q quando faço…
tabela.setModel(modelo);
da pau…
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