Foro de elhacker.net

Programación => Java => Mensaje iniciado por: llAudioslavell en 27 Mayo 2015, 23:30 pm



Título: Problema con jTable
Publicado por: llAudioslavell en 27 Mayo 2015, 23:30 pm
Hola a todos !! estoy haciendo una busqueda a una tabla Alumnos por 2 criterior: Dni y Apellidos... la busqueda me la hace normal !! no hay problema en eso, el problema es cuando doy click al resultado mostrando en el jTable y nose porque....
Código
  1. // Este metodo es para mostrar a todos los alumnos en el jTable
  2.  
  3.    void mostrarAlumnos() {
  4.        tbAlumnos.setRowCount(0);
  5.        metodosAlumnos.alumnos= metodosAlumnos.loadAlumno();
  6.        for (AlumnoEntity obj : metodosAlumnos.alumnos) {
  7.            Object[] vector = { obj.getApellidos(), obj.getNombres(),obj.getDni()};
  8.            tbAlumnos.addRow(vector);
  9.        }
  10.        metodosAlumnos.alumnos.clear();
  11.    }
  12.  
  13. // Este para hacer la consulta y llenarlo al jTable
  14.  
  15.    void consultarAlumno(int criterio, String texto) throws SQLException {
  16.  
  17.        if (texto.equals("")) {
  18.            tbAlumnos.setRowCount(0);
  19.            JOptionPane.showMessageDialog(null, "Ingrese el texto a buscar.");
  20.        } else {
  21.           metodosAlumnos.alumnos= metodosAlumnos.consultarAlumno(criterio, texto);
  22.            for (AlumnoEntity obj: metodosAlumnos.alumnos){
  23.                Object[] vector = { obj.getNombres(), obj.getApellidos(),obj.getDni()};
  24.                tbAlumnos.addRow(vector);
  25.            }
  26.        }
  27.        metodosAlumnos.alumnos.clear();
  28.    }
  29.  
  30. // Esto va en el boton "buscar"
  31.        try {
  32.            // TODO add your handling code here:
  33.            consultarAlumno(criterio, String.valueOf(txtTexto.getText()));
  34.        } catch (SQLException ex) {
  35.            Logger.getLogger(frmIConsultar_Alumno.class.getName()).log(Level.SEVERE, null, ex);
  36.        }
  37.  
Cuando doy click al jTable me imprime este error :

Código:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 4 >= 1
at java.util.Vector.elementAt(Vector.java:474)
at javax.swing.table.DefaultTableModel.setValueAt(DefaultTableModel.java:664)
at javax.swing.JTable.setValueAt(JTable.java:2741)
at javax.swing.JTable.editingStopped(JTable.java:4723)
at javax.swing.AbstractCellEditor.fireEditingStopped(AbstractCellEditor.java:141)
at javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(DefaultCellEditor.java:368)
at javax.swing.DefaultCellEditor.stopCellEditing(DefaultCellEditor.java:233)
at javax.swing.JTable$GenericEditor.stopCellEditing(JTable.java:5467)
at javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(BasicTableUI.java:1010)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:280)
at java.awt.Component.processMouseEvent(Component.java:6522)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4530)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


Como les digo, la busqueda lo hace sin problemas !!  He buscando info en google y entendi que es por problemas del indice del vector, que estoy intentando agregar un indice que no existe o algo asi pero no entiendo !! el vector si se llena, los registros si aparecen  entonces cual es el problema :( :( :( auxilio !!  estoy estrezado por este error :( :( :(

Mod: Los codigos deben ir en etiquetas GeSHi y los reportes preferiblemente en etiquetas code o quote