Foros del Web » Programación para mayores de 30 ;) » Java »

Colecciones (ArrayList)

Estas en el tema de Colecciones (ArrayList) en el foro de Java en Foros del Web. Hola amigos estoy desarrollando un pequeño proyecto para la universidad y tengo que hacer las funciones de guardar, visualizar, eliminar, modificar y buscar con formularios ...
  #1 (permalink)  
Antiguo 24/10/2012, 22:38
 
Fecha de Ingreso: enero-2010
Ubicación: Colombia
Mensajes: 238
Antigüedad: 14 años, 3 meses
Puntos: 2
Colecciones (ArrayList)

Hola amigos estoy desarrollando un pequeño proyecto para la universidad y tengo que hacer las funciones de guardar, visualizar, eliminar, modificar y buscar con formularios en java utilizando ArrayList. El problema es que al eliminar un registro almacenada temporalmente en mi colección me elimina varios y no precisamente el que quiero. Por otro lado el botón buscar no realiza ninguna acción a pesar que ya le he asignado una. Por favor necesito ayuda. alguien que por favor me colabore.


Código:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;
import javax.swing.*;

public class Taller_colecciones extends JFrame {
    public Taller_colecciones(){
        super("COLECCIONES");
        JDesktopPane principal = new JDesktopPane();
        final JTextField id = new JTextField();
        final JTextField nombre = new JTextField();
        final JTextField direccion = new JTextField();
        final JTextField telefono = new JTextField();
        final JTextField sueldo = new JTextField();
        JButton guardar = new JButton("Guardar");
        JButton eliminar = new JButton("Eliminar");
        JButton visualizar = new JButton("Visualizar");
        JButton editar = new JButton("Editar");
        JButton buscar = new JButton("Buscar");
        JLabel Lid = new JLabel("Cod: ");
        JLabel Lnombre = new JLabel("Nombre: ");
        JLabel Ldireccion = new JLabel("Direccion");
        JLabel Ltelefono = new JLabel("Telefono");
        JLabel Lsueldo = new JLabel("Sueldo");
        
        final ArrayList<String []> lista = new ArrayList<String []>();

        principal.add(id);
        principal.add(nombre);
        principal.add(direccion);
        principal.add(telefono);
        principal.add(sueldo);
        principal.add(guardar);
        principal.add(eliminar);
        principal.add(visualizar);
        principal.add(editar);
        principal.add(buscar);
        principal.add(Lid);
        principal.add(Lnombre);
        principal.add(Ldireccion);
        principal.add(Ltelefono);
        principal.add(Lsueldo);

        Lid.setBounds(230,10,100,30);
        Lnombre.setBounds(230,50,100,30);
        Ldireccion.setBounds(230,90,200,30);
        Ltelefono.setBounds(230,130,200,30);
        Lsueldo.setBounds(230,170,200,30);
        id.setBounds(300,10,200,30);
        nombre.setBounds(300,50,200,30);
        direccion.setBounds(300,90,200,30);
        telefono.setBounds(300,130,200,30);
        sueldo.setBounds(300,170,200,30);
        guardar.setBounds(10,240,100,30);
        eliminar.setBounds(130,240,100,30);
        visualizar.setBounds(250,240,100,30);
        editar.setBounds(370,240,100,30);
        buscar.setBounds(490,240,100,30);
        
        
        
        this.add(principal, BorderLayout.CENTER);
        this.setVisible(true);
        this.setSize(700, 500);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        guardar.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                lista.add(new String[]{id.getText(),nombre.getText(),direccion.getText(),telefono.getText(),sueldo.getText()});
                JOptionPane.showMessageDialog(null,"Registro guardado"); 
            }
        });

        visualizar.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                for (int i=0; i<lista.size(); i++)
               {
                    JOptionPane.showMessageDialog(null,lista.get(i)); 
                }
            }
        });
        
                
        eliminar.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                for (int i=0; i<lista.size(); i++){             
                lista.remove(i);
                JOptionPane.showMessageDialog(null,"Registro eliminado"); 
                }
            }
        });
                

        buscar.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                for (int i=0; i<lista.size(); i++){             
                if (lista.contains(i))
                {
                    JOptionPane.showMessageDialog(null,lista.get(i)); 
                }
            }
            }
            
        });
        
        
    }
    public static void main(String[] args){
        Taller_colecciones obj = new Taller_colecciones();

    }
    
}
Gracias.
  #2 (permalink)  
Antiguo 25/10/2012, 20:41
 
Fecha de Ingreso: febrero-2012
Mensajes: 136
Antigüedad: 12 años, 2 meses
Puntos: 8
Respuesta: Colecciones (ArrayList)

Bueno tio ... entiendo poco tu ejercicio


lo que estas haciendo crear un ArrayList donde cada elemento va a contener un ArrayString .. indeterminado por decirlo dinamico de n elementos...

entonces lo que tienes que hacer usar list.get(x) .. el cual te va devolver el ArrayString que guardaste en la posicion x ....


en la cual tendras que evaluar cada posicion del ArrayString ... buscando el elemento que quieres encontrar

Para que sea mas entendible tu codigo tu ArrayString no sea de un Tipo ArrayString dinamico

Sino que se de una Clase donde definas cada columna en la cual se te hara mas facil y entendible tu codigo

Ejemplo esta es mi clase trabajador
Código C++:
Ver original
  1. public class Trabajador {
  2.  
  3.     private int id;
  4.     private String nombre;
  5.     private String direccion;
  6.     private String Telefono;
  7.     private String Direccion;
  8.     private int sueldo;
  9.  
  10.     public Trabajador(int id, String nombre, String direccion, String Telefono, String Direccion, int sueldo) {
  11.         this.id = id;
  12.         this.nombre = nombre;
  13.         this.direccion = direccion;
  14.         this.Telefono = Telefono;
  15.         this.Direccion = Direccion;
  16.         this.sueldo = sueldo;
  17.     }
  18.  
  19.     public int getId() {
  20.         return id;
  21.     }
  22.  
  23.     public String getNombre() {
  24.         return nombre;
  25.     }
  26.  
  27.     public String getDireccion() {
  28.         return direccion;
  29.     }
  30.  
  31.     public String getTelefono() {
  32.         return Telefono;
  33.     }
  34.  
  35.    
  36.     public int getSueldo() {
  37.         return sueldo;
  38.     }

y esta mi void main

Código C++:
Ver original
  1. public class NewMain {
  2.  
  3.     /**
  4.      * @param args the command line arguments
  5.      */
  6.     public static void main(String[] args) {
  7.         // TODO code application logic here
  8.         ArrayList<Trabajador> lista=new ArrayList<Trabajador>();
  9.         lista.add(new Trabajador(1, "Carlos", "Av. Peru 01", "220254", "Tecuento", 1500));
  10.         lista.add(new Trabajador(2, "Marco", "Av. Peru 01", "21441", "Tecuento", 800));
  11.         for (int i = 0; i < lista.size(); i++) {
  12.             //busco el id 1
  13.             if(lista.get(i).getId()==2)
  14.             {
  15.                 JOptionPane.showMessageDialog(null, "Numero "+ 2+ " id encontrado pertenece a "+lista.get(i).getNombre());
  16.             }
  17.         }
  18.                
  19.     }
  20. }

Esperi que te ayude con mi ejemplo

Última edición por AdvKael; 25/10/2012 a las 20:53

Etiquetas: string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:09.