elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  NullPointerException al abrir ventana
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: NullPointerException al abrir ventana  (Leído 1,672 veces)
edr89

Desconectado Desconectado

Mensajes: 105


Ver Perfil
NullPointerException al abrir ventana
« en: 6 Diciembre 2015, 04:23 am »

Hola, buen día.

He buscado un poco acerca del error y todo apunta a que en alguna parte del código deberia haber un objeto pero se encuentra con un null y la aplicación truena.

La aplicación es muy sencilla y se pueden agregar autores a una base de datos en Derby, hay un boton que abre una ventana para dar de alta un Folder, y cada folder tiene asociado un Autor. Para poder dar de alta un Folder es necesario escribir el nombre del folder y despues el usuario da click en un boton que dice buscar, el boton debería abrir una ventana donde despliega la lista de autores que previamente hemos agregado, entonces se selecciona uno y se puede dar de alta un Folder.

El problema es que al dar click en buscar autor la aplicación falla y aparece el siguiente mensaje:
Código:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at mx.uam.ayd.negocio.ControlAgregarFolder.buscarAutor(ControlAgregarFolder.java:31)
at mx.uam.ayd.presentacion.VentanaAltaFolder$1.actionPerformed(VentanaAltaFolder.java:114)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Anteriormente teniamos la misma aplicacion pero las clases se llamaban Libros, solamente ajustamos los nombre y quitamos un campo que no necesitamos y al correr la aplicación esta fallando. El flujo es mas o menos el siguiente:

EL boton que dispara la accion para desplegarla ventana con autores es el siguiente:
Código
  1. /**
  2. * This method initializes jButtonBuscarAutor
  3. *
  4. * @return javax.swing.JButton
  5. */
  6. private JButton getJButtonBuscarAutor() {
  7.    if (jButtonBuscarAutor == null) {
  8.        jButtonBuscarAutor = new JButton();
  9.        jButtonBuscarAutor.setBounds(new Rectangle(347, 120, 86, 40));
  10.        jButtonBuscarAutor.setText("Buscar");
  11.        jButtonBuscarAutor.addActionListener(new java.awt.event.ActionListener() {
  12.            public void actionPerformed(java.awt.event.ActionEvent e) {
  13.                autor = control.buscarAutor();
  14.                if(autor != null) {
  15.                jLabelNombreAutor.setText(autor.toString()); //Muestra el nombre del autor actualmente seleccionado
  16.                }
  17.            }
  18.        });
  19.    }
  20.    return jButtonBuscarAutor;
  21. }

Y la clase control tiene el siguiente código:
Código
  1. public class ControlAgregarFolder {
  2. private DAOFolder DAOFolders;//libreria
  3. private DAOAutor DAOautores;
  4. private VentanaAltaFolder VentanaFolder;
  5.  
  6. public ControlAgregarFolder(DAOFolder DAOFolders, DAOAutor autores) {
  7.    this.DAOFolders = DAOFolders;
  8.    this.DAOautores = autores;
  9. }
  10.  
  11. public void inicia() {
  12.    VentanaFolder = new VentanaAltaFolder(this);
  13.    VentanaFolder.setVisible(true);
  14. }
  15.  
  16. public Autor buscarAutor() {
  17. //En la siguiente linea el programa esta fallando, cuando ejecuta DAOautores.dameAutores()
  18.    Autor arregloAutores[] = DAOautores.dameAutores(); // Obtiene lista de autores
  19.    DialogoSeleccionAutor dialogo = new DialogoSeleccionAutor(new JFrame(),arregloAutores);
  20. // Crea el dialogo con la lista de autores
  21.    dialogo.setVisible(true); // Muestra el dialogo
  22.    return dialogo.getAutorSeleccionado(); // Regresa el autor seleccionado en el dialogo
  23. }
  24.  
  25. public void agregarFolder(String nombre, Autor autor, String ruta) {
  26.    DAOFolders.agregaFolder(new Folder(nombre,autor,ruta));
  27. }
  28. }

Y donde se supone que esta fallando es en la linea que hace referencia al DAOAutor cuyo codigo es:
Código
  1. public Autor[] dameAutores() {
  2. ArrayList <Autor> autoresTemp = new ArrayList <Autor>();
  3. try {
  4. // Crea el statement
  5. Statement statement = ManejadorBD.dameConnection().createStatement();
  6. // Recibe los resutados
  7. ResultSet rs = statement.executeQuery("SELECT * FROM Autores");
  8. while(rs.next())
  9. {
  10. // Crea una nueva instancia del objeto
  11. Autor autor = new Autor(rs.getString("nombre"),rs.getString("apellido"));
  12. autoresTemp.add(autor);
  13. }
  14. Autor autoresTempArreglo[]=new Autor[autoresTemp.size()];
  15. autoresTemp.toArray(autoresTempArreglo);
  16. return autoresTempArreglo;
  17. } catch (SQLException e) {
  18. // TODO Auto-generated catch block
  19. e.printStackTrace();
  20. return null;
  21. }
  22. }

edito: conseguimos resolver el problema comenzando desde cero, no supe porque daba el error.  En los DAO algunos métodos regresaban null si fallaba algo en la conexion o las sentencias de SQL, imaginé que por ahi estaba el problema.

Saludos


« Última modificación: 10 Diciembre 2015, 07:06 am por edr89 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] Abrir ventana
Desarrollo Web
Miseryk 2 2,081 Último mensaje 29 Julio 2011, 01:19 am
por Miseryk
abrir un ventana emergente y una nueva ventana al tiempo con un solo clip
Desarrollo Web
virtualpc 5 4,239 Último mensaje 18 Noviembre 2012, 22:32 pm
por virtualpc
NullPointerException calling static Instances
Java
jsahara 4 1,888 Último mensaje 16 Mayo 2016, 17:53 pm
por ivancea96
NullPointerException usando WindowsBuilder y jFrame
Java
rgomez9119 2 1,783 Último mensaje 10 Noviembre 2016, 19:20 pm
por rgomez9119
problema nullpointerexception
Programación General
sebapoli00 0 1,905 Último mensaje 1 Noviembre 2019, 15:39 pm
por sebapoli00
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines