que pasos debo seguir para crear una aplicacion? SingleFrameApplication

Iniciado por kinos, 27 Octubre 2009, 21:13 PM

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

kinos

Stoy hecho un lio...  :o

   He hecho una aplicacion de escritorio con Netbeans. Le he puesto un splashScreen para que salga una imagen mientras se va cargando.
   La duda es, que proceso debo seguir para ir cargando la aplicación, cargar los objetos y demás que requieran mucho tiempo. Entonces cuando ya se haya concluido pasarlos de alguna forma a la parte grafica. Se lanza con launch(DesktopApplication.class, args); y en este punto es cuando debería desaparecer el splash.

Esta es la estructura que tiene mas o menos:

Código (java) [Seleccionar]

package desktopapplication2;

public class DesktopApplication2 extends SingleFrameApplication {

    @Override protected void startup() {
        show(new DesktopApplication2View(this));
    }

    @Override protected void configureWindow(java.awt.Window root) {
    }

    public static DesktopApplication2 getApplication() {
        return Application.getInstance(DesktopApplication2.class);
    }

    public static void main(String[] args) {

        //se crea el splashScreen
        SplashScreen splashScreen = new SplashScreen();
        //lo mostramos
        splashScreen.mostrar();

        //cargamos los objetos pesados, su carga requiere mucho tiempo
        ObjetoA objeto = new ObjetoA();
        objeto.hacerTarea();

        //splashScreen desaparece
        splashScreen.desaparece();

        //*:) como paso los objetos a la aplicacion grafica-----------------------------------------

        launch(DesktopApplication2.class, args);
    }
}



DesktopApplication2View otra parte de codigo:
Código (java) [Seleccionar]

public class DesktopApplication2View extends FrameView {

    public DesktopApplication2View(SingleFrameApplication app) {
        super(app);

        initComponents();
        ....
        }

       ....

        @Override protected void finished() {
            setSaveNeeded(false);
        }
    }
}



Si hay que hacerlo de otra manera corregirme por favor.

Leyer

estas hecho un lio por que estas usando netbeans por q mas :P los objetos pasalos por un constructor de la parte grafica.

kinos

Ya :P pero nose como los tengo que pasar.

Es que en esta instrucción podrias pasarle string en args, pero como paso un objeto...
launch(DesktopApplication2.class, args);

Es mas, se lo tendría que pasar a DesktopApplication2View que es lo que contiene todo no?

O deberia declarar ObjetoA como... public ObjetoA objeto; en DesktopApplication2 y acceder desde DesktopApplication2View de alguna forma?

Leyer

sii las 2 pueden funcionar pero ya depende de cada quien cual usar aunke es mas correcto que se lo pases a DesktopApplication2View  ;)
.primer paso cagar splash mostrar proceso de carga de obj.
.segundo al finalizar cargar la vista new DesktopApplication2View(obj)

kinos

Gracias. Creo que ya voy aclarandome. ;D

Igual asi... aunque lo veo redundante:

Código (java) [Seleccionar]

package desktopapplication2;

public class DesktopApplication2 extends SingleFrameApplication {

    private ObjetoA objeto;

    @Override protected void startup() {
        show(new DesktopApplication2View(this, objeto));
    }

    @Override protected void configureWindow(java.awt.Window root) {
    }

    public static DesktopApplication2 getApplication() {
        return Application.getInstance(DesktopApplication2.class);
    }

    public static void main(String[] args) {

        //se crea el splashScreen
        SplashScreen splashScreen = new SplashScreen();
        //lo mostramos
        splashScreen.mostrar();

        //cargamos los objetos pesados, su carga requiere mucho tiempo
        objeto = new ObjetoA();
        objeto.hacerTarea();

        //splashScreen desaparece
        splashScreen.desaparece();

        //*:) como paso los objetos a la aplicacion grafica-----------------------------------------
        //los pasas en el startup()

        launch(DesktopApplication2.class, args);
    }
}


Lo que no mola es que el objeto "private ObjetoA objeto;" tiene que estar en la clase DesktopApplication2 y en la DesktopApplication2View. Eso es feo :huh:

Leyer

 ::) jajaj claro que no .estas trabajando con objetos y de manera modular entonces esa seria la forma correcta.