Interfaz Grafica Java

Iniciado por latinoalfredo, 21 Noviembre 2013, 23:05 PM

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

latinoalfredo

Hola
Estoy haciendo una interfaz grafica swing para java, y me gustaria preguntar si hay algun metodo
para que me precargue los jframes ya que cuando hago una ventana con bastantes opciones tarda unos segundos en abrir.
La opcion que se me ocurrio es hacer un .setVisible(true); .setvisible(false), pero se ven las ventanas y no queda bonito.
Por eso pregunto si hay una opcion para que cargue todo al principio y luego no tener que esperar al abrir cada menu, al igual que hacen muchos programas en java como netbeans.

Mitsu

¿Lo que deseas es cargar en memoria todos los módulos de tu aplicación desde el principio?

Al parecer tienes problemas de rendimiento, eso no es problema de Java, si no de los algoritmos. Analiza tus algoritmos con Big O para que puedas hacer más eficiente tus algoritmos.

Si optas por la misma opción, vas a sobrecargar la aplicación con módulos innecesarios, como tener el JDialog de opciones abierto todo el tiempo, que consumirá ram en todo el tiempo que la aplicación esté ejecutándose.

Si accedes por esto último, en StackOverFlow te darán una respuesta muy acertada.


Saludos.

egyware

#2
Código (java) [Seleccionar]
JFrame frame = null;
//....
public JFrame showFrame()
{
  if(frame == null)
  {
     frame = new JFrame();
  }
  frame.setVisible(true);
  return frame;
}


Una ligera modificación al Patrón Singleton

PS: Ahora leí este post Mitsu :P

latinoalfredo

Muchas gracias, pero ya tenia un metodo similar. Tengo un metodo que inicializa las ventanas similar a ese pero sigo teniendo retardo. Las funciones que les tengo a mis botones son bastantes simple como mucho de O(n). Donde si noto retardo (2 segundos como mucho) es a la hora de hacer el primer setVisible(true), y no son ventanas que hagan mucho algunas son dos entradas de texto con un simple boton con if/else. Por eso preguntaba si habria un modo de ir cargandolas en memoria antes tipo, cuando se habra un JFrame que cargue los siguientes a los que puede acceder desde ahi.