Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Exception in thread "main" java.lang.NullPointerException aiuto!!

    Ciao a tutti, da poco ho cominciato a programmare in java a scuola.
    Oggi ci è stato chiesto di creare un gioco (molto semplice).
    Il gioco da me creato quando viene mandato in compilazione non da nessun errore ma una volta mandato in esecuzione mi appaiono questi errori:

    Exception in thread "main" java.lang.NullPointerException
    at java.awt.Container.addImpl(Container.java:1041)
    at java.awt.Container.add(Container.java:927)
    at LupoSolitario.<init>(LupoSolitario.java:40)
    at LupoSolitario.main(LupoSolitario.java:59)

    che errori sono? Come posso risolverli?

    questo è il programma da me fatto fin ora:

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;

    public class LupoSolitario extends JFrame implements ActionListener{

    JButton scelte[];
    JButton opzioni[];
    JButton inizio;
    JButton tabdest;

    JPanel sce,opz,sto,stat;
    //pannelli statistiche
    JPanel imm,p1,p2;

    JTextField comb,res;
    JTextArea storia;

    public LupoSolitario(){

    scelte= new JButton[5];
    opzioni= new JButton[5];

    inizio = new JButton("INIZIO");
    inizio.setVisible(false);
    inizio.addActionListener(this);

    tabdest = new JButton();
    tabdest.setVisible(false);
    tabdest.addActionListener(this);

    Container cnt = this.getContentPane();

    for(int i=0; i<5; i++){
    scelte[i]= new JButton("");
    opzioni[i]= new JButton("");
    }

    setLayout(new BorderLayout());
    cnt.add(sce,"South");
    cnt.add(opz,"East");
    cnt.add(sto,"Center");
    cnt.add(stat,"West");

    opz.setLayout(new GridLayout(1,5,3,2));

    for(int i=0; i<5; i++){
    sce.add(scelte[i]);
    opz.add(opzioni[i]);
    }

    opz.add(tabdest);

    //stat.setLayout(new GridLayout)

    }

    public static void main(String args[]){
    new LupoSolitario();

    }

    public void actionPerformed (ActionEvent e){}

    }

    Aiutatemi vi prego!!!!!!

  2. #2
    non hai assegnato nessun oggetto alle variabili reference che identificano i JPanel, di conseguenza sce,opz,sto,stat sono tutti null pointer. Ottieni dunque un'eccezione quando vuoi aggiungerli al container. Inizializzali con il solito "sce = new JPanel()"

    Stesso vale per imm, p1 e p2. Non li hai inizializzati, di conseguenza se provi ad usarli, ottieni la stessa eccezione


  3. #3
    dove devo mettere sce = new JPanel()???

  4. #4
    Risolto tutto grazie.

  5. #5
    Figurati. Rispondo lo stesso all'altro post, nel caso possa servire.
    Ogni volta che devi utilizzare un oggetto, devi inizializzarlo (solitamente non la new). Puoi farlo quando vuoi, basta che lo fai prima di utilizzarlo


  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Ho spostato la discussione nel forum dedicato a Java.
    In futuro, poni qui le tue domande relative a questo linguaggio.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.