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:
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:
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.
estas hecho un lio por que estas usando netbeans por q mas :P los objetos pasalos por un constructor de la parte grafica.
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?
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)
Gracias. Creo que ya voy aclarandome. ;D
Igual asi... aunque lo veo redundante:
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:
::) jajaj claro que no .estas trabajando con objetos y de manera modular entonces esa seria la forma correcta.