Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/07/2013, 15:09
Avatar de drakk92
drakk92
 
Fecha de Ingreso: julio-2013
Ubicación: cali
Mensajes: 25
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Cargar string de una columna y pasarla a varios jtextfield

El error que em da netbeans es este:

Código Java:
Ver original
  1. Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 6
  2.     at formularios.ing_emp.t_datosMouseClicked(ing_emp.java:589)
  3.     at formularios.ing_emp.access$1000(ing_emp.java:19)
  4.     at formularios.ing_emp$11.mouseClicked(ing_emp.java:318)
  5.     at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
  6.     at java.awt.Component.processMouseEvent(Component.java:6508)
  7.     at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
  8.     at java.awt.Component.processEvent(Component.java:6270)
  9.     at java.awt.Container.processEvent(Container.java:2229)
  10.     at java.awt.Component.dispatchEventImpl(Component.java:4861)
  11.     at java.awt.Container.dispatchEventImpl(Container.java:2287)
  12.     at java.awt.Component.dispatchEvent(Component.java:4687)
  13.     at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
  14.     at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501)
  15.     at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
  16.     at java.awt.Container.dispatchEventImpl(Container.java:2273)
  17.     at java.awt.Window.dispatchEventImpl(Window.java:2719)
  18.     at java.awt.Component.dispatchEvent(Component.java:4687)
  19.     at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
  20.     at java.awt.EventQueue.access$200(EventQueue.java:103)
  21.     at java.awt.EventQueue$3.run(EventQueue.java:694)
  22.     at java.awt.EventQueue$3.run(EventQueue.java:692)
  23.     at java.security.AccessController.doPrivileged(Native Method)
  24.     at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
  25.     at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
  26.     at java.awt.EventQueue$4.run(EventQueue.java:708)
  27.     at java.awt.EventQueue$4.run(EventQueue.java:706)
  28.     at java.security.AccessController.doPrivileged(Native Method)
  29.     at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
  30.     at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
  31.     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
  32.     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
  33.     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
  34.     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
  35.     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
  36.     at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

¿Adicionalmente, que seguridad tienes que el método split va a devolver 6 columnas?

El split lo hago para "Particionar el String de la columna 6" mas no para devolver 6 columnas, porque en realidad mi tabla es de 8 columnas y ya las tengo creadas, yo solo quiero cojer el string de la columna 6 y particionarlo en 7 partes para pegar cada particion de string a unos jtextarea.

se que la columna direccion contiene 7 string porque yo cree el programa para que agrege exactamente 7 string a esa columna, obviamente esa parte esta en otra clase que es la encargada de guardar todos los datos ingresados:

Código Java:
Ver original
  1. String Direccion = Dir1 + " " + Calle + " # " + Num1 + Letra1 + " - " + Num2; //exactamente 7 variables fueron ingresadas

Código Java:
Ver original
  1.  
  2. void cargar() {
  3.  
  4.         String[] titulos = {"Cedula", "Nombre", "Apellido", "Edad", "Sexo", "Telefono", "Direccion", "Cargo"};
  5.         String[] registros = new String[8];
  6.  
  7.         String sql = "SELECT * FROM Empleados";
  8.         DefaultTableModel model = new DefaultTableModel(null, titulos);
  9.  
  10.         conectar cc = new conectar();
  11.         Connection cn = cc.conexion();
  12.         try {
  13.             Statement st = cn.createStatement();
  14.             ResultSet rs = st.executeQuery(sql);
  15.  
  16.             while (rs.next()) {
  17.                 registros[0] = rs.getString("Cedula_e");
  18.                 registros[1] = rs.getString("Nombre_e");
  19.                 registros[2] = rs.getString("Apellido_e");
  20.                 registros[3] = rs.getString("Edad_e");
  21.                 registros[4] = rs.getString("Sexo_e");
  22.                 registros[5] = rs.getString("Telefono_e");
  23.                 registros[6] = rs.getString("Direccion_e");
  24.                 registros[7] = rs.getString("Cargo_e");
  25.  
  26.                 model.addRow(registros);
  27.             }
  28.  
  29.             t_datos.setModel(model);
  30.  
  31.         } catch (SQLException ex) {
  32.             Logger.getLogger(ing_emp.class.getName()).log(Level.SEVERE, null, ex);
  33.         }
  34.  
  35.     }

Aqui cargo la tabla en base a una consulta sql que tengo, obviamente con el programa al iniciar ejecuto el "cargar"


entonces mas abajo le agregue ela ction listener a la tabla...
Código Java:
Ver original
  1. private void t_datosMouseClicked(java.awt.event.MouseEvent evt) {                                    
  2.         desbloquear();
  3.         for (int i = 0; i < t_datos.getRowCount(); i++) {
  4.             String nombre = "", apellido = "", num2 = "", direccion = "", dir = "", calle = "", telefono = "", edad = "", sexo = "", cedula = "", cargo = "", num1 = "", letra = "";
  5.  
  6.             cedula = (String) t_datos.getValueAt(t_datos.getSelectedRow(), 0);
  7.             nombre = (String) t_datos.getValueAt(t_datos.getSelectedRow(), 1);
  8.             apellido = (String) t_datos.getValueAt(t_datos.getSelectedRow(), 2);
  9.             edad = (String) t_datos.getValueAt(t_datos.getSelectedRow(), 3);
  10.             sexo = (String) t_datos.getValueAt(t_datos.getSelectedRow(), 4);
  11.             telefono = (String) t_datos.getValueAt(t_datos.getSelectedRow(), 5);
  12.             direccion = (String) t_datos.getValueAt(t_datos.getSelectedRow(), 6);
  13.             cargo = (String) t_datos.getValueAt(t_datos.getSelectedRow(), 7); <-- en total seria un conteo de 8 que es equivalente a las 8 columnas.
  14.  
  15.             String Arreglo[] = new String[6];  <---- aqui quiero particionar el String de la columna 6 y posteriormente pasar los string a cada jtextfield.
  16.  
  17.             Arreglo = direccion.split(" ");
  18.             dir = Arreglo[0];
  19.             calle = Arreglo[1];
  20.             String simbol = Arreglo[2];
  21.             num1 = Arreglo[3];
  22.             letra = Arreglo[4];
  23.             String symbol = Arreglo[5];
  24.             num2 = Arreglo[6];
  25.  
  26.  
  27.  
  28.             t_ce.setText(cedula);
  29.             t_n.setText(nombre);
  30.             t_a.setText(apellido);
  31.             t_e.setText(edad);
  32.             combosex.setSelectedItem(sexo);
  33.             t_telefono.setText(telefono);
  34.             t_dir.setSelectedItem(dir);
  35.             t_calle.setText(calle);
  36.             t_num1.setText(num1);
  37.             t_letra.setSelectedItem(letra);
  38.             t_num2.setText(num2);
  39.             t_ca.setText(cargo);
  40.  
  41.  
  42.  
  43.         }        
  44.     }

me hago entender? yo no tengo 6 columnas, "yo tengo 8" y la columna 6 tiene un string el cual quiero particionarlo en 7 partes, para enviar cada string a los jtextfield.

Última edición por drakk92; 30/07/2013 a las 15:21