Buenas noches amigos, espero me ayuden :3
y sino de antemano gracias por la intención de intentar ayudarme.
Explico:
tengo un sistema con un jFrame este contiene un jMenu y un jDesktopPane, con el menú llamo a distintas pantallas (jInternalFrame) que tengo (20 en total), pues tengo un problema que al cargar algunas pantallas (NO todas). y todas las pantallas las llamo de la misma manera, la programación es similar en todas (botones de acciones, un mini catalogo, y las opciones para los registros o modificaciones, la base de datos es PostgreSQL.
NOTA: antes me funcionaba, ps antes manejaba las pantallas q cada vez q ejecutaba una opcion del menu, hacia lo siguiente:
ANTES:
--------------------------------------------------------------------------------------------
declaraba un boolean para cada pantalla
al ejecutar el actionlistener de la opcion me hacia esto:
if (WindowEmpresa==false){ //si el boolean es "false" entoncs:
ConfiguracionEmpresa gc = new ConfiguracionEmpresa();
int x = (jDesktop.getWidth()/2) - gc.getWidth()/2;
int y = (jDesktop.getHeight()/2) - gc.getHeight()/2;
jDesktop.add(gc);
gc.setLocation(x,y);
gc.show(); //muestra la pantalla
WindowEmpresa=true; //vuelve el boolean "true"
}else{ //sino
Notification.desktopMessage("¡Error!", "Ventana 'Empresa' Abierta", 1);
}
--------------------------------------------------------------------------------------------
pero ahora lo hago de otra manera:
AHORA:
--------------------------------------------------------------------------------------------
al abrir el menuprincipal este me carga todas las pantallas de una vez, el proceso tarda como 10 segs aprox,
al principio tengo declarado asi:
GestionPresupuesto gPresupuesto;
y dentro del constructor esto:
gPresupuesto = new GestionPresupuesto();
Despues de abrir el menuprincipal, al ejecutar el actionlistener de la opcion hago esto:
if(gPresupuesto.isShowing()){
if(!(gPresupuesto.isSelected())){
int x = (jDesktop.getWidth()/2) - gPresupuesto.getWidth()/2;
int y = (jDesktop.getHeight()/2) - gPresupuesto.getHeight()/2;
gPresupuesto.setLocation(x,y);
gPresupuesto.moveToFront();
}
}else{
int x = (jDesktop.getWidth()/2) - gPresupuesto.getWidth()/2;
int y = (jDesktop.getHeight()/2) - gPresupuesto.getHeight()/2;
jDesktop.add(gPresupuesto);
gPresupuesto.setLocation(x,y);
gPresupuesto.show();
}
y me lanza el siguiente error:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.plaf.synth.SynthComboBoxUI.paintCurren tValue(SynthComboBoxUI.java:378)
at javax.swing.plaf.synth.SynthComboBoxUI.paint(Synth ComboBoxUI.java:357)
at javax.swing.plaf.synth.SynthComboBoxUI.update(Synt hComboBoxUI.java:325)
at javax.swing.JComponent.paintComponent(JComponent.j ava:778)
at javax.swing.JComponent.paint(JComponent.java:1054)
at javax.swing.JComponent.paintChildren(JComponent.ja va:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.ja va:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.ja va:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:5 86)
at javax.swing.JComponent.paintChildren(JComponent.ja va:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.ja va:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.ja va:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:5 86)
at javax.swing.JComponent.paintChildren(JComponent.ja va:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.ja va:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:5 86)
at javax.swing.JComponent.paintChildren(JComponent.ja va:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintToOffscreen(JComponent .java:5222)
at javax.swing.RepaintManager$PaintManager.paintDoubl eBuffered(RepaintManager.java:1572)
at javax.swing.RepaintManager$PaintManager.paint(Repa intManager.java:1495)
at javax.swing.RepaintManager.paint(RepaintManager.ja va:1265)
at javax.swing.JComponent._paintImmediately(JComponen t.java:5170)
at javax.swing.JComponent.paintImmediately(JComponent .java:4981)
at javax.swing.RepaintManager$4.run(RepaintManager.ja va:824)
at javax.swing.RepaintManager$4.run(RepaintManager.ja va:807)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPri vilege(ProtectionDomain.java:75)
at javax.swing.RepaintManager.paintDirtyRegions(Repai ntManager.java:807)
at javax.swing.RepaintManager.paintDirtyRegions(Repai ntManager.java:782)
at javax.swing.RepaintManager.prePaintDirtyRegions(Re paintManager.java:731)
at javax.swing.RepaintManager.access$1300(RepaintMana ger.java:64)
at javax.swing.RepaintManager$ProcessingRunnable.run( RepaintManager.java:1720)
at java.awt.event.InvocationEvent.dispatch(Invocation Event.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.j ava:749)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:702)
at java.awt.EventQueue$3.run(EventQueue.java:696)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPri vilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 719)
at java.awt.EventDispatchThread.pumpOneEventForFilter s(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(E ventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:82)
--------------------------------------------------------------------------------------------
si alguien me puede ayudar, por favor, se lo agradeceria muchisimo