Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    225

    [JAVA] ERRORE NullPointerException

    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at PannelloLista.actionPerformed(PannelloLista.java:51)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6038)
        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: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(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)
    Perchè non "vede" gli oggetti nella riga 51 di PannelloLista?
    Qualcuno sa spiegarmelo?
    GRAZIE MILLE!

    codice:
    public class PannelloLista extends JPanel implements ActionListener {
        private JTextField txt1;
        private JList lista;
        private JButton b;
        private JLabel txt2;
        private PanSocieta riferimento;
        private FinestraLista RIFERIMENTO;
        
    
        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);
            
            b = new JButton("  OK  ");
            b.addActionListener(this);
            
            add(txt1);
            add(lista);
            add(txt2);
            add(b);
        }
        
        public void actionPerformed(ActionEvent e) {
            RIFERIMENTO.nascondiFinestra(riferimento.fl);   //RIGA 51
        }
    }
    codice:
    public class PanSocieta extends JPanel implements ActionListener {
        
        protected JTextField t1, t2, t3, t4, t5;
        protected JLabel j1, j2, j3, j4, j5;
        protected JButton b1, b2;
        protected FinestraLista RIFERIMENTO;
        protected GestioneClienti gc;
        public ListNode CLIENTI;
        public ClienteSocieta c;
        public FinestraLista fl;
    
        public PanSocieta(ListNode CLIENTI) {
            super();
            
            this.CLIENTI = CLIENTI;
    
    
             ..............................................................................
            
        }
        
        public void actionPerformed(ActionEvent e) {
            
            if (e.getSource()==b1) {
                                               .....................................            
                            
                FinestraLista fl = new FinestraLista("Lista clienti"); // Farla aprire da menù
                Container cont = fl.getContentPane();
                PannelloLista pl = new PannelloLista(this, this.RIFERIMENTO);
                cont.add(pl);
                fl.setVisible(true);
            }
            
            else {
                             .............................            
                
                
                FinestraLista fl = new FinestraLista("Lista clienti");
                Container cont = fl.getContentPane();
                PannelloLista pl = new PannelloLista(this, this.RIFERIMENTO);
                cont.add(pl);
                fl.setVisible(true);
            }
                
        }
    }
    codice:
    public class FinestraLista extends JFrame {
    
        public FinestraLista(String titolo) {
            super(titolo);
            
            setBounds(150,150, 230,200);
        }
        
        public void nascondiFinestra(FinestraLista f) {
            f.setVisible(false);
        }
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    RIFERIMENTO nella classe PanSocieta da cui istanzi un PannelloLista non è inizializzato a niente...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    225
    RIFERIMENTO (maiuscolo) non dovrebbe essere un riferimento alla finestra fl, che creo in PannelloSocieta?

    GRAZIE MILLE

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    se esistesse come oggetto da qualche parte, sì. Peccato che non esiste come oggetto:

    PanSocieta.java
    codice:
    public class PanSocieta extends JPanel implements ActionListener {
        
        protected JTextField t1, t2, t3, t4, t5;
        protected JLabel j1, j2, j3, j4, j5;
        protected JButton b1, b2;
        protected FinestraLista RIFERIMENTO; // qui "riservi" lo spazio in memoria per
        // un oggetto di tipo FinestraLista e lo chiami RIFERIMENTO
    
    ...
    
    public PanSocieta(ListNode CLIENTI) {
            super();
            
            this.CLIENTI = CLIENTI;
    
    // hai inizializzato RIFERIMENTO? Se non l'hai fatto, RIFERIMENTO punta al nulla: alcuni IDE
    // tipo Netbeans, ti potrebbero perfino avvertire - quando più sotto provi a passare RIFERIMENTO
    // come argomento in actionPerformed all'istanza di PannelloLista - che RIFERIMENTO non è
    // inizializzato
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    225
    Ok, GRAZIE MILLE!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.