Pasar Datos de un jTextbox a una matriz

Publicado en 'Programación' por xavi116, 10 Jun 2014.





  1. xavi116

    xavi116 Miembro de bronce

    Registro:
    4 Mar 2010
    Mensajes:
    2,114
    Likes:
    466




    hola foreros, necesito su ayuda para lo siguiente, en NETBEANS

    por ejemplo tengo una matriz con 4 columnas "CODIGO", "NOMBRE","TELEFONO","DIRECCION"
    la cantidad de filas sera "n" ya que ira creciendo dependiendo de cuantos registros almacene


    la ayuda que necesito es en los siguiente,
    tengo 4 jtextfield , el 1ro es para el codigo, el 2do para el nombre, etc etc
    lo que quiero es agregar los datos del jtexfield al indice 0 de la primera matriz,, algo asi como llenar una tabla de una base de datos, tengo problemas para hacerlo con la matriz

    y algo adicional, si no es mucho pedir xD, en otro jtexfield quiero poner el codigo 3 y que me muestre los datos de la matriz en la caja de texto, algo asi como una busqueda x indice

    gracias..., solo quiero un solo ejemplo para hacer un proyecto q me dejaron y necesito ayuda solo con eso, ya del resto me encargo yo
     


  2. bichoflyer

    bichoflyer Miembro nuevo

    Registro:
    13 May 2012
    Mensajes:
    33
    Likes:
    8
    ¿Tiene que ser estrictamente con una matriz? Podrías usar un ArrayList.
    Otra cosa, ¿usarás los 4 arrays? Podrías usar una matriz de un objeto. (Como suena a tarea, no sé si está permitido usar clases).
    Si quieres buscar, puedes grabar un DocumentListener al jtextfield que usarás como filtro para escuchar los cambios en el texto (busca el Tutorial JTextField de Oracle).
    Vas a tener que implementar un método que busque en cada array de acuerdo al criterio. Otra opción sería agregar un botón un actionListener al jtextfield para que cuando presiones <Enter> o al click en el botón, recién haga la búsqueda. Te doy las siguientes ideas:
    Supongamos que has declarado los siguientes arrays:
    Código:
    String[] codigos;
    String[] nombres;
    String[] telefonos;
    String[] direcciones; 
    Bien, entonces cuando ingresas uno nuevo, llamas al método que leerá los datos de los jtextField's y los pondrá en cada arreglo correspondientemente. Eso es sencillo. Luego, cuando busques, tienes dos opciones:
    Código:
    //Opción 1: Buscando exactamente el código o nombre ingresado, se llamará en el evento ActionPerformed.
    for(int i=0; i<codigos.length; i++){
     if([B]codigos[i].equals(CODIGO_A_BUSCAR) [/B]){
     //código para mostrar nombres[i], telefonos[i] y direcciones[i]
    [B]break;[/B] //LA INCLUSIÓN DE ESTA LÍNEA NO DEBERÍA AFECTAR EL RESULTADO; PERO SÍ LA PERFORMANCE.
    }
    }
    La otra opción es usando una especie de filtro, implementando el documentListener al JTextField en el que ingresarás el código de búsqueda, el código sería el mismo; pero usando codigos.startsWith(CODIGO_A_BUSCAR) en el evento DocumentChange.
    Si quieres más info sobre cómo usar el JTextField mejor, busca en la página oficial de Java, que es mantenida por Oracle, o googlea por: Using JTextField.
    Antes que preguntes si no hay en español, me imagino que sabías que los mejores manuales están en inglés, y que habrás tomado la precaución de estudiar inglés.
    Creo que es suficiente, ahora, si quieres que te hagan la tarea, regresa al colegio.
    :hi:
     
  3. eduar2083

    eduar2083 Miembro frecuente

    Registro:
    26 Jul 2011
    Mensajes:
    224
    Likes:
    46
    Hola,

    Si el número de registro va a ser "n" lo mejor será que utilices un ArrayList como ya lo mencionaron ya que este un objeto que puede ir creciendo dinámicamente en tiempo de ejecución, al contrario que un Array convencional cuya longitud queda definida en tiempo de compilación y te lanzará una Excepción si intentas sobrepasar su índice máximo permitido. Sin embargo, para subsanar esta situación y aún así deseas utilizar Arrays, puedes ir evaluando en cada inserción el tamaño del Array y en caso que se llegara al tope puedes crearte otro Array con una longitud mayor. Eso sí, recuerda que los Arrays pueden almacenar sólo datos primitivos, es decir, no podrás crear un Array de una clase RegistroAlumno creada por tí, algo que sí podrás hacer con ArrayList, por tanto para tu caso tendrías que utilizar 4 Arrays paralelos para almacenar los datos de los registros, pero vuelvo a insistir utiliza mejor un ArrayList o Vector en su defecto y créate una clase RegistroAlumno con las propiedad Código, Nombre, Teléfono y Dirección y esta será la Entidad que te ayudará en el proceso de CRUD.

    Saludos.