CIAO A TUTTI!
Nella classe GestioneCliente ho questo metodo:codice:public class PannelloLista extends JPanel implements ActionListener, ListSelectionListener { private JTextField txt1; private JList lista; private JButton b; private JLabel txt2; private PanSocieta riferimento; private PanDitta riferimento2; private FinestraLista RIFERIMENTO; private ClienteDittaIndividuale c, c2; private FinestraDitta RIFE2; private FinestraSocieta RIFE; /** Metodo costruttore se chiamante è PanSocieta. */ public PannelloLista(PanSocieta chiamante, FinestraLista CHIAMANTE) { super(); setBackground(new Color(102,255,102)); RIFERIMENTO = CHIAMANTE; riferimento = chiamante; txt1 = new JTextField("Lista dei clienti inseriti"); txt1.setEditable(false); txt2 = new JLabel("Premere OK per chiudere la finestra"); int lunghezza = riferimento.CLIENTI.length(); String[] clienti = new String[lunghezza]; clienti = riferimento.gc.getNomiClienti(riferimento.CLIENTI); lista = new JList(clienti); lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); lista.addListSelectionListener(this); b = new JButton(" OK "); b.addActionListener(this); add(txt1); add(lista); add(txt2); add(b); } /** Metodo costruttore se chiamente è PanDitta. */ public PannelloLista(PanDitta chiamante, FinestraLista CHIAMANTE) { super(); setBackground(new Color(102,255,102)); RIFERIMENTO = CHIAMANTE; riferimento2 = chiamante; txt1 = new JTextField("Lista dei clienti inseriti"); txt1.setEditable(false); txt2 = new JLabel("Premere OK per chiudere la finestra"); int lunghezza = riferimento2.CLIENTI.length(); String[] clienti = new String[lunghezza]; clienti = riferimento2.gc.getNomiClienti(riferimento2.CLIENTI); lista = new JList(clienti); lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); lista.addListSelectionListener(this); b = new JButton(" OK "); b.addActionListener(this); add(txt1); add(lista); add(txt2); add(b); } /** Metodo per gestire eventi JButton. */ public void actionPerformed(ActionEvent e) { /** Nascondo FinestraLista. */ RIFERIMENTO.setVisible(false); } /** Metodo per gestire eventi JList. */ public void valueChanged(ListSelectionEvent el) { String NOME = (String) lista.getSelectedValue(); c = new ClienteDittaIndividuale(NOME); c2 = riferimento2.gc.cercaCliente(this.riferimento2.CLIENTI, this.c); FinestraDitta fd = new FinestraDitta("Dati cliente:"); Container cont = fd.getContentPane(); RIFE2 = fd; PannelloDatiDitta pd = new PannelloDatiDitta(this.c2, riferimento2.CLIENTI, this.RIFE2); cont.add(pd); fd.setVisible(true); } }
Il programma mi lancia questa eccezione 2 volte:codice:/** Metodo che cerca un cliente in una ListNode. */ public ClienteDittaIndividuale cercaCliente(ListNode l, ClienteDittaIndividuale c) { if (l.head().equals(c)) { ClienteDittaIndividuale c2 = null; c2 = (ClienteDittaIndividuale) l.head(); return c2; } else { l = (ListNode) l.tail(); return cercaCliente(l, c); } }
codice:Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at PannelloLista.valueChanged(PannelloLista.java:104) at javax.swing.JList.fireSelectionValueChanged(JList.java:1765) at javax.swing.JList$ListSelectionHandler.valueChanged(JList.java:1779) at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167) at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:147) at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:194) at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:388) at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:398) at javax.swing.DefaultListSelectionModel.setSelectionInterval(DefaultListSelectionModel.java:442) at javax.swing.JList.setSelectionInterval(JList.java:2035) at javax.swing.plaf.basic.BasicListUI$Handler.adjustSelection(BasicListUI.java:2716) at javax.swing.plaf.basic.BasicListUI$Handler.mousePressed(BasicListUI.java:2672) at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:263) at java.awt.Component.processMouseEvent(Component.java:6035) at javax.swing.JComponent.processMouseEvent(JComponent.java:3260) 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:3983) 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(EventDispatchThread.java:273) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.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)
La riga 104 di PannelloLista è quella in rosso.
Il problema può derivare dal metodo cercaCliente?
GRAZIE MILLE
![]()

Rispondi quotando