Título: Excepcion al cancelar una ventana Publicado por: 1mpuls0 en 13 Octubre 2008, 09:57 am Hola amigos del foto, me gustaria que me ayudaran con este metodo como puedo arreglarlo, estoy trabajando en un programa en el cual tengo que crear N botones(representan conjuntos) los cuales no puede repetir su nombre asi que utilizo listas pero si el nombre del elemento ya existe aun asi me retorna el nombre del conjunto pero para esto mando llamar el mismo metodo( nombreConjunto(); ) y quiero que me digan si hay una mejor opcion; mi segundo problema es que al cerrar la ventana donde pido el nombre del conjunto por ejemplo si doy click en cancelar o cerrar ventana me tira las excepciones que vienen despues del codigo, les agradecere mucho su ayuda!!
saludos PD. No quise escribir todo el codigo por que es mucho, pero si es necesario para una mejor apreciacion(aunque no lo creo) me avisan... public String nombreConjunto() { try { nombreBoton = JOptionPane.showInputDialog(null,"Escribe el nombre del conjunto","Nombre del conjunto",1); nodo encontrado; encontrado = listina.buscarlis(nombreBoton); if(encontrado != null) { JOptionPane.showMessageDialog(null,"El nombre del conjunto ya existe"); nombreConjunto(); } else { listina.insertarprimero(nombreBoton); } } catch(NullPointerException exception) {} while(nombreBoton.equals("")||nombreBoton.charAt(0)==' ') { try { nombreBoton = JOptionPane.showInputDialog(null,"Escribe el nombre del conjunto","Nombre del conjunto",1); } catch(NullPointerException exxx) {} } return nombreBoton; } ClickC1 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at 1mpuls0.productoCartesiano.nombreConjunto(productoCartesiano.java:529 ) at 1mpuls0.productoCartesiano.agregarBoton(productoCartesiano.java:465) at 1mpuls0.productoCartesiano.botConjuntosActionPerformed(productoCartes iano.java:373) at 1mpuls0.productoCartesiano.access$000(productoCartesiano.java:12) at 1mpuls0.productoCartesiano$1.actionPerformed(productoCartesiano.java: 118) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:19 95) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.jav a:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel .java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242 ) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL istener.java:236) at java.awt.Component.processMouseEvent(Component.java:6038) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5803) at java.awt.Container.processEvent(Container.java:2058) at java.awt.Component.dispatchEventImpl(Component.java:4410) at java.awt.Container.dispatchEventImpl(Container.java:2116) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322 ) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916) at java.awt.Container.dispatchEventImpl(Container.java:2102) at java.awt.Window.dispatchEventImpl(Window.java:2429) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre ad.java:273) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread. java:183) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre ad.java:173) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) at java.awt.EventDispatchThread.run(EventDispatchThread.java:121) Press any key to continue... Título: Re: Excepcion al cancelar una ventana Publicado por: juancho77 en 14 Octubre 2008, 06:28 am Citar java.lang.NullPointerException El "return" de ese metodo devuelve nombreBoton. Si haces click en cancelar, se producen las excepciones que son correctamente atrapadas en el codigo porque se intenta operar con un String nulo. Debes incluir codigo para atrapar la excepcion que se produciria al final si intentas retornar nombreBoton como nulo. Por ejemplo: Código
Eso te soluciona el error en el metodo que posteaste. Saludos Título: Re: Excepcion al cancelar una ventana Publicado por: 1mpuls0 en 14 Octubre 2008, 08:38 am Código
Eso te soluciona el error en el metodo que posteaste. Saludos Hola si me funciono para el momento en que se cierra la ventana pero aun asi cuando cancelo el JOptionPane me retorna null y crea un boton sin nombre!!, pero para mi trabajo creo que no hay problema! aunque si me hubiera gustado que no regresara el valor en caso de que se cancelara o cerra la ventana saludos Título: Re: Excepcion al cancelar una ventana Publicado por: juancho77 en 15 Octubre 2008, 19:09 pm Y claro, porque llamas al Dialog desde una instruccion setText() del boton. Entonces, cuando retorna null crea un String null para el texto del boton. Para solucionar eso tendrias que poner la llamada al dialog en otra parte. Por ejemplo:
Código
Título: Re: Excepcion al cancelar una ventana Publicado por: 1mpuls0 en 17 Octubre 2008, 09:01 am A oks si que me ha servido, como no pensarlo antes xD, buen gracias... ;D
gracias juancho77 Citar: String textoBoton = JOptionPane.showMessageDialog();if (! textoBoton.equals(null)) //si textoBoton no es igual a null // establecerel texto del botonelse //si textoBoton es null // mostras un mensaje de error o pones un nombre generico. |