Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Aeros en 17 Agosto 2010, 05:03 am



Título: Boton que agrega un objeto a un treeset
Publicado por: Aeros en 17 Agosto 2010, 05:03 am
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
  1. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
  2.         Validacion v = new Validacion(txtPlaca.getText(), txtNombre.getText(),txtKm.getText());
  3.  
  4.         if(v.validarcajasllenas()== false || v.validarNumeros()==false|| v.validarDatos()==false){
  5.                    JOptionPane.showMessageDialog(null,"Complete todos de manera correcta", "Información",JOptionPane.WARNING_MESSAGE);
  6.             }
  7.         else{
  8.  
  9.               Lv.AgregarVehiculos(new Vehiculo(txtPlaca.getText(), txtNombre.getText(), Integer.parseInt(txtKm.getText())));
  10.               Lv.MostrarVehiculos();
  11.         }
  12.    }


con las siguientes clases :

Código
  1. public class Validacion {
  2.        private String  placaVehiculo;
  3. private String nombrePersona;
  4. private String  actualKm;
  5.  
  6.        public Validacion(String p, String n, String   ak){
  7.            this.nombrePersona= n;
  8.            this.placaVehiculo =p;
  9.            this.actualKm =ak;
  10.            }
  11.  
  12.  
  13.    public boolean validarcajasllenas(){
  14.            if ( (nombrePersona.length()==0) || (placaVehiculo.length()==0) || (actualKm.length()==0) ){
  15.                return false;
  16.            }
  17.            else{return true;}
  18.            }
  19.     public boolean validarDatos(){
  20.           if((placaVehiculo.matches(("[a-zA-Z]*")))&&(nombrePersona.matches(("[a-zA-Z]*")))){
  21.               return true;
  22.           }
  23.           else {return false;}
  24. }
  25.     public boolean validarNumeros(){
  26.         if (actualKm.matches("[0-9]*")){
  27.                return true;
  28.         }else{return false;}
  29.     }
  30.  
  31. }


Código
  1. package ejercicion5;
  2. import java.util.TreeSet;
  3.  
  4. public class Vehiculo {
  5.     private String  placaVehiculo;
  6. private String nombrePersona;
  7. private int actualKm;
  8.  
  9.        public Vehiculo(){
  10.  
  11.        }
  12. public Vehiculo (String placaVehiculo, String nombrePersona, int actualkm){
  13. this.placaVehiculo = placaVehiculo;
  14. this.nombrePersona = nombrePersona;
  15. this.actualKm = actualKm;
  16.  
  17. }
  18.  
  19.        public void setplacaVehiculo(String placaVehiculo ){this.placaVehiculo = placaVehiculo;}
  20.        public void setnombrePersona(String nombre){this.nombrePersona = nombre;}
  21.        public void setKm(int actualKm){this.actualKm = actualKm;}
  22.  
  23.        public String getPlaca(){return placaVehiculo;}
  24.        public String getnombrePersona(){return nombrePersona;}
  25.        public int getactualKm(){return actualKm;}
  26.  
  27.        public String toString(){
  28.            return(this.getPlaca()+ " "+ this.getnombrePersona() +" "+ this.getactualKm());
  29.  
  30.        }
  31. }

Gracias :D


Título: Re: Boton que agrega un objeto a un treeset
Publicado por: Leyer en 17 Agosto 2010, 05:55 am
 :xD


Título: Re: Boton que agrega un objeto a un treeset
Publicado por: Aeros en 17 Agosto 2010, 08:01 am
no entiendo si los metodos de validacion  devuelven false se imprime messagedialog si no agrego objetos a la lista de vehiculos.


Explicate :P



Título: Re: Boton que agrega un objeto a un treeset
Publicado por: Leyer en 17 Agosto 2010, 08:34 am
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.  


Título: Re: Boton que agrega un objeto a un treeset
Publicado por: Aeros en 17 Agosto 2010, 11:08 am
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.



Título: Re: Boton que agrega un objeto a un treeset
Publicado por: Gallu 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.


Título: Re: Boton que agrega un objeto a un treeset
Publicado por: Aeros en 17 Agosto 2010, 15:49 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 :)