Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Datos duplicados en un ArrayList

Estoy desarrollando un trabajo en netbeans en donde debo crear una arreglo de ingreso de clientes, una clase cliente y un jframe que permita el ingreso de los datos, los datos pedidos son:
- Id cliente
- Nombre
- Apellido
- Telefono fijo
- Telefono de celular
- Direccion

Tengo desarrollada las clases y el jframe, pero tengo el siguiente problema:
al presionar el boton ingresar, ingresa los datos en un textarea donde muestra los datos del arreglo, epro una de las condiciones es que no me permita ingresar los datos si el id del cliente ya existe en el arreglo.

mi consulta es como agrego ese codigo y donde, si alguien me puede ayudar lo agradeceria mucho

septiembre 17, 2015 | Registered Commentermatiazo2015

Hola,

Pues yo haría algo asi. Y llamaría a este metodo para introducir un nuevo cliente. No es la forma más optima de hacerlo, pero creo que es sencillo de entender y de adaptarlo a tu gusto.

ArrayList<Cliente> clientes; // entiendo que tendrás un array de clientes en alguna parte

public String addCliente(Cliente cliente) {
boolean existe = false;
String respuesta="";

for (Cliente c: clientes){
if(c.getId() == cliente.getId()){
existe = true;
}
}
if(existe){
respuesta = "El cliente ya existe"
}else{
clientes.add(cliente);
respuesta = "Cliente añadido ok"
}

return respuesta;

}

Saludos, espero que te ayude,

Oldskultxo

septiembre 17, 2015 | Registered Commenteroldskultxo

estimado ne entendi la escencia de tu codigo pero mas alla quede un poco colgado mira estos son las clases que tengo

Clase cliente

public class Cliente {
private String id_cliente;
private String nombre;
private String apellido;
private String celular;
private String telefono;
private String direccion;

public Cliente(String id_cliente, String nombre, String apellido, String celular, String telefono, String direccion) {
this.id_cliente = id_cliente;
this.nombre = nombre;
this.apellido = apellido;
this.celular = celular;
this.telefono = telefono;
this.direccion = direccion;
}

public Cliente(){

}

public String getId_cliente() {
return id_cliente;
}

public void setId_cliente(String id_cliente) {
this.id_cliente = id_cliente;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getApellido() {
return apellido;
}

public void setApellido(String apellido) {
this.apellido = apellido;
}

public String getCelular() {
return celular;
}

public void setCelular(String celular) {
this.celular = celular;
}

public String getTelefono() {
return telefono;
}

public void setTelefono(String telefono) {
this.telefono = telefono;
}

public String getDireccion() {
return direccion;
}

public void setDireccion(String direccion) {
this.direccion = direccion;
}

public String MuestraDatos(){
return "Id Cliente: " + this.getId_cliente() + " Nombre: " + this.getNombre() + " " + " Apellido: " + this.getApellido() + " " + " Telefono fijo: " + this.getTelefono() + " " + " Telefono celular: " + this.getCelular() + " " + " Direccion: " + this.getDireccion() + " " + "\n";

}


}

Clase listado clientes

package poo;
import java.util.ArrayList;
public class ListadoClientes {
public ArrayList<Cliente> lista = new ArrayList<Cliente>();

public void AgregarCliente(Cliente cliente){
lista.add(cliente);
}
}
y el jframe que recibe los datos

import javax.swing.JOptionPane;

public class Ingresar extends javax.swing.JFrame {
public ListadoClientes lista = new ListadoClientes();
public Ingresar() {
initComponents();
tx_carrier.enable(false);
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
tx_id = new javax.swing.JTextField();
tx_nombre = new javax.swing.JTextField();
tx_apellido = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
tx_fijo = new javax.swing.JTextField();
tx_celular = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
tx_carrier = new javax.swing.JTextField();
tx_direccion = new javax.swing.JTextField();
bt_ingresar = new javax.swing.JButton();
bt_buscar = new javax.swing.JButton();
bt_reset = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
ta_mostrar = new javax.swing.JTextArea();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setText("Id_cliente");

jLabel2.setText("Nombre");

jLabel3.setText("Apellido");

tx_id.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
tx_idKeyTyped(evt);
}
});

jLabel4.setText("Telefono fijo");

jLabel5.setText("Telefono celular");

tx_fijo.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
tx_fijoKeyPressed(evt);
}
public void keyTyped(java.awt.event.KeyEvent evt) {
tx_fijoKeyTyped(evt);
}
});

tx_celular.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
tx_celularKeyTyped(evt);
}
});

jLabel6.setText("Direccion");

tx_carrier.setText("09");

bt_ingresar.setText("Ingresar");
bt_ingresar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bt_ingresarActionPerformed(evt);
}
});

bt_buscar.setText("Busqueda");

bt_reset.setText("Reset Telefono");

ta_mostrar.setColumns(20);
ta_mostrar.setRows(5);
jScrollPane1.setViewportView(ta_mostrar);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(21, 21, 21)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel6)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(tx_id, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(50, 50, 50)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel2)
.addComponent(tx_nombre, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel3)
.addComponent(tx_apellido, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap())
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(tx_fijo, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(40, 40, 40)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(tx_carrier, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(tx_celular, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(92, 92, 92))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel5)
.addGap(0, 0, Short.MAX_VALUE))))
.addGroup(layout.createSequentialGroup()
.addComponent(tx_direccion, javax.swing.GroupLayout.PREFERRED_SIZE, 255, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(bt_ingresar)
.addGap(0, 0, Short.MAX_VALUE))))
.addGroup(layout.createSequentialGroup()
.addGap(59, 59, 59)
.addComponent(bt_buscar)
.addGap(88, 88, 88)
.addComponent(bt_reset)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(27, 27, 27)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jLabel2)
.addComponent(jLabel3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(tx_id, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tx_nombre, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tx_apellido, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jLabel5))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tx_celular, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(tx_fijo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tx_carrier, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(18, 18, 18)
.addComponent(jLabel6)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(tx_direccion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(bt_ingresar))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(bt_buscar)
.addComponent(bt_reset))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 173, Short.MAX_VALUE)
.addContainerGap())
);

pack();
}// </editor-fold>

private void bt_ingresarActionPerformed(java.awt.event.ActionEvent evt) {
String nombre = tx_nombre.getText();
String apellido = tx_apellido.getText();
String celular = tx_celular.getText();
String direccion = tx_direccion.getText();
String id = tx_id.getText();
String fijo = tx_fijo.getText();

if(nombre.length() == 0 || apellido.length() == 0 || celular.length() == 0 || id.length() == 0 ){
JOptionPane.showMessageDialog(this,"Error uno de los campos esta vacio","Error",JOptionPane.ERROR_MESSAGE);
}
if(nombre.length() < 3 || apellido.length() < 3 ){
JOptionPane.showMessageDialog(this, "Error de de caracteres, nombre o apellido demasiado corto ","Error",JOptionPane.ERROR_MESSAGE);
}
if (direccion.length() < 5 ){
JOptionPane.showMessageDialog(this, "Error de de caracteres, direccion demasiado corta ","Error",JOptionPane.ERROR_MESSAGE);
}
if (celular.equals(fijo)){
JOptionPane.showMessageDialog(this, "Error, el celular y el telefono fijo son iguales ","Error",JOptionPane.ERROR_MESSAGE);
}else{
Cliente c= new Cliente();
c.setId_cliente(tx_id.getText());
c.setNombre(tx_nombre.getText());
c.setApellido(tx_apellido.getText());
c.setCelular(tx_celular.getText());
c.setTelefono(tx_fijo.getText());
c.setDireccion(tx_direccion.getText());
lista.AgregarCliente(c);
MuestraDatos();
}
}

al agregar los datos en el jframe y hacer click en el boton ingresar debe validar que el id de cliente ingresado no este guardado en el arreglo es decir si ya ingrese el id 01 y lo quiero volver a ingresar que me lo impida y me diga el error que estoy cometiendo

por tu tiemnpo y el tiempo de quien se lo de para responder agradezco mucho

septiembre 17, 2015 | Unregistered CommenterMatias

Hola,
perdona si no estaba claro :

En tu metodo:


public String AgregarCliente(Cliente cliente){

boolean existe = false;
String respuesta="";

for (Cliente c: clientes){
if(c.getId() == cliente.getId()){
existe = true;
}
}
if(existe){
respuesta = "Cliente añadido ok"
lista.add(cliente);
}else{
respuesta = "Cliente añadido no ok"
}

return respuesta;


}

septiembre 21, 2015 | Registered Commenteroldskultxo