• Lunes 23 de Diciembre de 2024, 16:49

Autor Tema:  Problema Con La Interfaz  (Leído 1183 veces)

subharb

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Problema Con La Interfaz
« en: Jueves 8 de Mayo de 2008, 21:36 »
0
Hola chicos, vereis estoy haciendo una prac para la universidad, son algoritmos geneticos, la practica funciona bien sin la interfaz, pero cuando la pongo tarda muchisimo mas que sin la interfaz, eso a mi profesor le parece inaceptable pero no sabe como resolverlo.Grandes Docentes!
Y si me apurais tb da resultados peores a los que da sin la interfaz, algo que escapa de mi compresion puesto que lo que se ejecuta es exactamente igual pero con unos switches y tal.

Os adjunto el codigo, para que me podais dar una ayuda.Quizás el problema esté en el actionlistener, ya es ahi donde se ejecuta todo el código porque necesito que cada vez q se clicke en aceptar se ejecute el programa, pero no conozco otra manera de hacer que el programa se ejecte cada vez que se clicka en aceptar si no es asi.


Espero vuestra ayuda muchas gracias!!
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: Problema Con La Interfaz
« Respuesta #1 en: Viernes 9 de Mayo de 2008, 00:51 »
0
Hola...

Tu práctica parece bastante interesante, pero podrías llegar a mejorarla un poco. Te cuento:

Podrías haber utilizado un interface y programar una clase que lo implemente para cada uno de los algoritmos de mutación. Lo mismo para las selecciones y para todo lo demás y meter en tu clase AGenetico parámetros para pasarle esas clases. De esta forma ahorras algo de tiempo y de código. Espero que se me haya entendido correctamente.

En cuanto a lo de la lentitud... ya nos dirás cómo se llama tu profesor, o donde estudias, para no aparecer jamás por ahí, aunque ten en cuenta que tu profesor no tiene por qué saber Java. Yo estudié la asignatura programando en C++.

Los algoritmos genéticos son un trabajo pesado. Cuando ejecutas un programa con Swing, la JVM crea una hebra digamos... específica para el GUI. Si ejecutas cualquier trabajo sobre esa hebra, como es el caso, no sólo irá más lento, sino que, además, dejarás 'colgado' tu interfaz gráfico. Echa un vistazo en internet y en este foro a la clase SwingWorker. En las últimas versiones de JDK viene incluído, pero se pueden descargar las clases como paquete a parte para las versiones por debajo de la 1.5 (no recuerdo si la 1.4 la llevaba de serie).
Usando eso, seguramente te tirará más rápido.

De los resultados, no hay mucho que decir... la ejecución es la misma, aunque ya sabes que no todas las ejecuciones de algoritmos genéticos dan el mismo resultado ;o)  no creo que sean más que apreciaciones tuyas. De todas formas, repasa el código por si se te ha colado algún error al capturar las opciones desde el GUI y el programa no está haciendo lo que tú realmente quieres que haga.



Ya nos contarás.
Buena suerte.



Silverfox