doble click sobre JList
Publicado por ENARA (62 intervenciones) el 21/10/2006 16:48:13
Aupi!
Estoy intentado abrir una ventana al hacer el doble click en un JList.
Para ello tengo:
public class ControladorAvisos extends Controlador implements ListSelectionListener,MouseListener{
private JList jListAvisos;//la que me obtiene getSource con el evento seleccionado de la lista
private int indice;//indice del aviso seleccionado
private int id;//id del aviso
private String textoAviso;//texto del aviso
MargenAvisosParaHoy maph=MargenAvisosParaHoy.obtMargenAvisosParaHoy();
private static ControladorAvisos miControladorAvisos= new ControladorAvisos();
private ControladorAvisos() {
}
public static ControladorAvisos obtControladorAvisos(){
return miControladorAvisos;
}
public void valueChanged(ListSelectionEvent e) {
jListAvisos = (JList)e.getSource();
if(!jListAvisos.isSelectionEmpty()){
indice = jListAvisos.getSelectedIndex();
}
}
public void mouseClicked(MouseEvent e){
System.out.println("SE HA USADO EL RATON:: NUM CLICKS: "+ e.getClickCount()+ " INDICE DE LA LISTA: "+indice);
if (e.getClickCount() == 2) {
ControladorVentanaLeerAviso cvla=new ControladorVentanaLeerAviso();
id=maph.obtIdAviso(indice);
textoAviso=maph.obtTextoAviso(indice);
cvla.mostrar(id,id +" "+textoAviso);
}
}
...
}
y esto me sale en la consola:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at pfc.packInterface.ControladorAvisos.mouseClicked(ControladorAvisos.java:58) CORRESPONDIENTE A : id=maph.obtIdAviso(indice);
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:212)
at java.awt.Component.processMouseEvent(Component.java:5491)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3901)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
SE HA USADO EL RATON:: NUM CLICKS: 2 INDICE DE LA LISTA: 2
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
¿A alguien se le ocurre a qué se debe? Muchas gracias por molestaros en mirarlo.
Estoy intentado abrir una ventana al hacer el doble click en un JList.
Para ello tengo:
public class ControladorAvisos extends Controlador implements ListSelectionListener,MouseListener{
private JList jListAvisos;//la que me obtiene getSource con el evento seleccionado de la lista
private int indice;//indice del aviso seleccionado
private int id;//id del aviso
private String textoAviso;//texto del aviso
MargenAvisosParaHoy maph=MargenAvisosParaHoy.obtMargenAvisosParaHoy();
private static ControladorAvisos miControladorAvisos= new ControladorAvisos();
private ControladorAvisos() {
}
public static ControladorAvisos obtControladorAvisos(){
return miControladorAvisos;
}
public void valueChanged(ListSelectionEvent e) {
jListAvisos = (JList)e.getSource();
if(!jListAvisos.isSelectionEmpty()){
indice = jListAvisos.getSelectedIndex();
}
}
public void mouseClicked(MouseEvent e){
System.out.println("SE HA USADO EL RATON:: NUM CLICKS: "+ e.getClickCount()+ " INDICE DE LA LISTA: "+indice);
if (e.getClickCount() == 2) {
ControladorVentanaLeerAviso cvla=new ControladorVentanaLeerAviso();
id=maph.obtIdAviso(indice);
textoAviso=maph.obtTextoAviso(indice);
cvla.mostrar(id,id +" "+textoAviso);
}
}
...
}
y esto me sale en la consola:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at pfc.packInterface.ControladorAvisos.mouseClicked(ControladorAvisos.java:58) CORRESPONDIENTE A : id=maph.obtIdAviso(indice);
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:212)
at java.awt.Component.processMouseEvent(Component.java:5491)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3901)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
SE HA USADO EL RATON:: NUM CLICKS: 2 INDICE DE LA LISTA: 2
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
¿A alguien se le ocurre a qué se debe? Muchas gracias por molestaros en mirarlo.
Valora esta pregunta


0