viernes, 26 de octubre de 2007

Generar una sola instancia de un JFrame

Cuando hacemos programas con formularios windows y los llamamos desde un menu, cada vez que hacemos click sobre la opcion del menu nos creara un nuevo form, lo que deseaba es tener una sola instancia de cada formulario, sin usar el modo modal claro esta.

Encontre una forma.. usando el "Patrón Singleton", la verdad no lo entiendo muy iben pero como muchos de uds. solo queremos usarlo, y hacer rapidamnete nuestros programas; he aqui la forma:

1. Diseña tu formulario(jframe, jdialog, jinternalframe, etc) en el IDE Netbeans.

2. Cambia en el formulario la propiedad "defaultCloseOperation" a HIDE

3. Agrega la propiedad "myInstance" a la clase de tu formulario, algo como:
private static myjFrame myInstance;

4. Agrega el metodo getinstance() al formulario, algo como:

public static myjFrame getInstance()
{
if (myInstance == null)
myInstance = new myjFrame();
return myInstance;
}

5 Para usar el formulario desde un menu:

private void jMenuItem2MousePressed(java.awt.event.MouseEvent evt)
{
myjFrame myForm = myjFrame.getInstance();
myForm.setVisible(true);
}

Espero les sirva.