Boton que agrega un objeto a un treeset

Iniciado por Aeros, 17 Agosto 2010, 05:03 AM

0 Miembros y 1 Visitante están viendo este tema.

Aeros

hola que tal

el problema q tengo q es q solo me deja agregar un vehiculo a la lista de vehiculos... y el error de jOptionPane me dice q no lo reconoce :(

Código (java) [Seleccionar]
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
         Validacion v = new Validacion(txtPlaca.getText(), txtNombre.getText(),txtKm.getText());

         if(v.validarcajasllenas()== false || v.validarNumeros()==false|| v.validarDatos()==false){
                    JOptionPane.showMessageDialog(null,"Complete todos de manera correcta", "Información",JOptionPane.WARNING_MESSAGE);
             }
         else{
               
               Lv.AgregarVehiculos(new Vehiculo(txtPlaca.getText(), txtNombre.getText(), Integer.parseInt(txtKm.getText())));
               Lv.MostrarVehiculos();
         }
    }



con las siguientes clases :

Código (java) [Seleccionar]
public class Validacion {
        private String  placaVehiculo;
private String nombrePersona;
private String  actualKm;

        public Validacion(String p, String n, String   ak){
            this.nombrePersona= n;
            this.placaVehiculo =p;
            this.actualKm =ak;
            }


    public boolean validarcajasllenas(){
            if ( (nombrePersona.length()==0) || (placaVehiculo.length()==0) || (actualKm.length()==0) ){
                return false;
            }
            else{return true;}
            }
     public boolean validarDatos(){
           if((placaVehiculo.matches(("[a-zA-Z]*")))&&(nombrePersona.matches(("[a-zA-Z]*")))){
               return true;
           }
           else {return false;}
}
     public boolean validarNumeros(){
         if (actualKm.matches("[0-9]*")){
                return true;
         }else{return false;}
     }

}



Código (java) [Seleccionar]
package ejercicion5;
import java.util.TreeSet;

public class Vehiculo {
     private String  placaVehiculo;
private String nombrePersona;
private int actualKm;

        public Vehiculo(){

        }
public Vehiculo (String placaVehiculo, String nombrePersona, int actualkm){
this.placaVehiculo = placaVehiculo;
this.nombrePersona = nombrePersona;
this.actualKm = actualKm;

}

        public void setplacaVehiculo(String placaVehiculo ){this.placaVehiculo = placaVehiculo;}
        public void setnombrePersona(String nombre){this.nombrePersona = nombre;}
        public void setKm(int actualKm){this.actualKm = actualKm;}

        public String getPlaca(){return placaVehiculo;}
        public String getnombrePersona(){return nombrePersona;}
        public int getactualKm(){return actualKm;}
       
        public String toString(){
            return(this.getPlaca()+ " "+ this.getnombrePersona() +" "+ this.getactualKm());
           
        }
}


Gracias :D

Leyer

#1
 :xD

Aeros

no entiendo si los metodos de validacion  devuelven false se imprime messagedialog si no agrego objetos a la lista de vehiculos.


Explicate :P


Leyer

#3
Mira es por que tienes que especificar el orden en el método compareTo, claro tu class vehiculo tienen que implementar comparable<Vehiculo> y luego defines un orden de ordenamiento.  

Aeros

pero no quiero ordenarlos xDD solo quiero q se vayan agregando al treeset.

pregunta : siempre cuando uso TreeSet tengo q usar el comparable?? o lo puedo usar como una list.


Gallu

Cuando usas una Collection tipo TreeSet , TODOS los objetos que vayas a agregar deber definir la manera en que se ordenarán , ya que dicha collection es ordenada , con lo cual , basta con que tu clase implemente el método compareTo(Object o) de la interfas Comparable , si no te interesa ordenarlo , solamente has que dicho método devuelva 1 , asi agregará a todos , o utiliza otra collection que no se ordene , tipo ArrayList o Vector.
Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.

Aeros

Cita de: Didacso en 17 Agosto 2010, 14:45 PM
Cuando usas una Collection tipo TreeSet , TODOS los objetos que vayas a agregar deber definir la manera en que se ordenarán , ya que dicha collection es ordenada , con lo cual , basta con que tu clase implemente el método compareTo(Object o) de la interfas Comparable , si no te interesa ordenarlo , solamente has que dicho método devuelva 1 , asi agregará a todos , o utiliza otra collection que no se ordene , tipo ArrayList o Vector.

ahh listo nop sabia q los TreeSet siempre hay q usar un compare

gracias :)