Pegar dados de uma JTable com pesquisa aproximada[RESOLVIDO]

2 respostas
ElesisLink

Olá galera, eu gostaria de saber como eu pego os dados do JTable depois de fazer uma pesquisa aproximada.

O problema e o seguinte: eu estou pegando os dados da tabela pelo row selecionado.

e recebo utilizando o código:

Ele funciona normal, o problema é que quando faço a pesquisa aproximada ele da a seguinte mensagem de erro:

Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 4, Size: 1 at java.util.ArrayList.RangeCheck(ArrayList.java:547) at java.util.ArrayList.get(ArrayList.java:322) at UsuarioTableModel.setValueAt(UsuarioTableModel.java:146) at javax.swing.JTable.setValueAt(JTable.java:2710) at javax.swing.JTable.editingStopped(JTable.java:4712) at javax.swing.AbstractCellEditor.fireEditingStopped(AbstractCellEditor.java:125) at javax.swing.AbstractCellEditor.stopCellEditing(AbstractCellEditor.java:68) at javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(BasicTableUI.java:980) at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:263) at java.awt.Component.processMouseEvent(Component.java:6285) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6053) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4651) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4481) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4235) 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:4481) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643) at java.awt.EventQueue.access$000(EventQueue.java:84) at java.awt.EventQueue$1.run(EventQueue.java:602) at java.awt.EventQueue$1.run(EventQueue.java:600) 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:616) at java.awt.EventQueue$2.run(EventQueue.java:614) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:613) 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)

às veses, ele funciona, mas ele puxa o row errado. Como eu resolvo isso ?

Se puderem me ajudar…

2 Respostas

al.barbosa

ElesisLink,

Como já está resolvido não precisa mais.

ElesisLink

LOL, consegui resolver.

O problema estava aqui:
int row = table.getSelectedRow()+1;  
    	if (row == 0) return;  

Menu.tabbed.add(new DetalhesUsuario(UsuarioDao.visualizarUsuario(row)),"Detalhes de usuários");
Tinha que estar assim:
int row = table.getSelectedRow();  
    	if (row == -1) return;  

Menu.tabbed.add(new DetalhesUsuario(UsuarioDao.visualizarUsuario(objetoClicado.getId())),"Detalhes de usuários");
Criado 19 de junho de 2012
Ultima resposta 19 de jun. de 2012
Respostas 2
Participantes 2