Ver Mensaje Individual
  #5 (permalink)  
Antiguo 01/08/2013, 12:33
Avatar de drakk92
drakk92
 
Fecha de Ingreso: julio-2013
Ubicación: cali
Mensajes: 25
Antigüedad: 11 años, 4 meses
Puntos: 1
Respuesta: Como usar un metodo para 2 clases en donde necesito calcular lo mismo

Intente enviarle el calendario como parametro pero me tira error...

Aqui la clase secundaria

Código Java:
Ver original
  1. package ObtenerEdad;
  2.  
  3. import Modelos.Fecha;
  4. import org.freixas.jcalendar.JCalendarCombo;
  5.  
  6.  
  7. public class ObtenerFecha {
  8.  
  9.     Object JCalendarCombo;
  10.    
  11.        
  12.     public int CalcularEdad(JCalendarCombo jCalendarCombo3) {
  13.        
  14.         Fecha f = new Fecha();
  15.        
  16.        JCalendarCombo = jCalendarCombo3;
  17.         String Fecha = String.valueOf(JCalendarCombo);
  18.        
  19.         //Fecha Registrada
  20.         String Arreglo[] = new String[5];
  21.         Arreglo = Fecha.split(" ");
  22.  
  23.         String Dia = Arreglo[0];
  24.         int NumDia = Integer.parseInt(Arreglo[1]);
  25.         String De = Arreglo[2];
  26.         String Mes = Arreglo[3];
  27.         String De2 = Arreglo[4];
  28.         int Año = Integer.parseInt(Arreglo[5]);
  29.  
  30.         int Mese = 0;
  31.  
  32.         switch (Mes) {
  33.             case "enero":
  34.                 Mese = 1;
  35.                 break;
  36.             case "febrero":
  37.                 Mese = 2;
  38.                 break;
  39.             case "marzo":
  40.                 Mese = 3;
  41.                 break;
  42.             case "abril":
  43.                 Mese = 4;
  44.                 break;
  45.             case "mayo":
  46.                 Mese = 5;
  47.                 break;
  48.             case "junio":
  49.                 Mese = 6;
  50.                 break;
  51.             case "julio":
  52.                 Mese = 7;
  53.                 break;
  54.         }
  55.  
  56.  
  57.  
  58.         //fecha Actual
  59.         String Arreglo2[] = new String[2];
  60.         Arreglo2 = f.getFecha().split("/");
  61.  
  62.         int Dia1 = Integer.parseInt(Arreglo2[0]);
  63.         int Mes1 = Integer.parseInt(Arreglo2[1]);
  64.         int Año1 = Integer.parseInt(Arreglo2[2]);
  65.  
  66.         // Cálculo de las diferencias.
  67.         int años = Año1 - Año;
  68.         int meses = Mes1 - Mese;
  69.         int dias = Dia1 - NumDia;
  70.  
  71.         // Hay que comprobar si el día de su cumpleaños es posterior
  72.         // a la fecha actual, para restar 1 a la diferencia de años,
  73.         // pues aún no ha sido su cumpleaños.
  74.  
  75.         if (meses < 0 // Aún no es el mes de su cumpleaños
  76.                 || (meses == 0 && dias < 0)) { // o es el mes pero no ha llegado el día.
  77.  
  78.             años --;
  79.            
  80.         }
  81.         return años;
  82.     }
  83.  
  84.    
  85. }


Aqui el Jframe

Código Java:
Ver original
  1. public Object edad() {
  2.         ObtenerFecha ob = new ObtenerFecha(this);
  3.         Object e = ob.CalcularEdad(jCalendarCombo3);
  4.         return e;
  5.     }

y mas abajo en el jframe el boton para probar la impresion de la edad

Código Java:
Ver original
  1. private void ProbarActionPerformed(java.awt.event.ActionEvent evt) {                                      
  2.        JOptionPane.showMessageDialog(null, edad());
  3.     }

la verdad no se como decirle al JCalendar que recibe que lo pase a string, como lo plantee deberia de funcionar bien.

este es el error, se supone que el calendario me da como resultado.

Código Java:
Ver original
  1. Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "2001,selectedDate=miércoles"
  2.     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
  3.     at java.lang.Integer.parseInt(Integer.java:492)
  4.     at java.lang.Integer.parseInt(Integer.java:527)
  5.     at ObtenerEdad.ObtenerFecha.CalcularEdad(ObtenerFecha.java:46)
  6.     at formularios.Cliente.edad(Cliente.java:132)
  7.     at formularios.Cliente.SalirActionPerformed(Cliente.java:512)
  8.     at formularios.Cliente.access$1200(Cliente.java:14)
  9.     at formularios.Cliente$13.actionPerformed(Cliente.java:316)
  10.     at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
  11.     at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
  12.     at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
  13.     at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
  14.     at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
  15.     at java.awt.Component.processMouseEvent(Component.java:6505)
  16.     at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
  17.     at java.awt.Component.processEvent(Component.java:6270)
  18.     at java.awt.Container.processEvent(Container.java:2229)
  19.     at java.awt.Component.dispatchEventImpl(Component.java:4861)
  20.     at java.awt.Container.dispatchEventImpl(Container.java:2287)
  21.     at java.awt.Component.dispatchEvent(Component.java:4687)
  22.     at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
  23.     at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
  24.     at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
  25.     at java.awt.Container.dispatchEventImpl(Container.java:2273)
  26.     at java.awt.Window.dispatchEventImpl(Window.java:2719)
  27.     at java.awt.Component.dispatchEvent(Component.java:4687)
  28.     at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
  29.     at java.awt.EventQueue.access$200(EventQueue.java:103)
  30.     at java.awt.EventQueue$3.run(EventQueue.java:694)
  31.     at java.awt.EventQueue$3.run(EventQueue.java:692)
  32.     at java.security.AccessController.doPrivileged(Native Method)
  33.     at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
  34.     at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
  35.     at java.awt.EventQueue$4.run(EventQueue.java:708)
  36.     at java.awt.EventQueue$4.run(EventQueue.java:706)
  37.     at java.security.AccessController.doPrivileged(Native Method)
  38.     at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
  39.     at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
  40.     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
  41.     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
  42.     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
  43.     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
  44.     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
  45.     at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)


se supone que el JCalendarCombo me da como resultado, jueves 1 de agosto del 2013, y como tengo arriba planteado el split esta bien :s.



Ya lo solucione, resulto ser mas sencillo de lo que pensaba, simplemente tenia que enviar como argumento un objeto x que era equivalente a una seleccion x en el jcalendarcombo, porque si le mando el calendario en si como argumento me manda un string como de 400 caracteres diciendo, item selected etc..

Última edición por drakk92; 01/08/2013 a las 18:24