Newsgroup: it.comp.java
Titolo: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

Ciao a Tutti!!! Non riesco a risolvere il problema in oggetto ovvero:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
vi prego di aiutarmi...vi posto il codice che consta di tre file:
FILE1: mainGui.java
package GUI;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class mainGui {
    public static void main(String[] v){
       PannelloQuadro quadro = new PannelloQuadro();
    }
}
FILE2: PannelloPittore.java
package GUI;
import java.awt.*;
import java.util.*;//package che serve per la classe Vector
import javax.swing.*;
import javax.swing.JOptionPane;
import java.awt.event.*;
import java.util.EventObject;
public class PannelloPittore{
    static JComboBox artista;
    static Vector vett_pittori = new Vector();
    /** Creates a new instance of PannelloPittore */
   /* public PannelloPittore() {
        InizializzaComponentiP();
    }*/
    public PannelloPittore(JComboBox dati,Vector v){
        InizializzaComponentiP();
        artista = dati;
        vett_pittori = v;
    }
    public void InizializzaComponentiP(){
        JFrame f = new JFrame("Pittore"); // crea un nuovo JFrame(una
finestra)per i dati del Pittore
        f.setBounds(300,300, 300,150);  //settiamo la posizione e le
dimensioni
        //aggiungiamo un pannello al container del frame
        Container c = f.getContentPane();
        PannelloP panel = new PannelloP();
        c.add(panel);
        f.show();// mostra il JFrame
}
class PannelloP extends JPanel implements ActionListener{
        private JLabel nome;
        private JLabel cognome;
        private JTextField nomeP;
        private JTextField cognomeP;
        private JButton b;
        public PannelloP(){
             super();
             //per il nome del pittore
             nome = new JLabel("Nome Pittore");
             nomeP = new JTextField(15);
             add(nome);
             add(nomeP);
             //per il cognome del Pittore
             cognome = new JLabel("Cognome Pittore");
             cognomeP=new JTextField(15);
             add(cognome);
             add(cognomeP);
             b = new JButton("OK");
             b.addActionListener(this);// registra l'oggetto panello
stesso come ascoltatore degli eventi
             add(b);
         }
        public void actionPerformed(ActionEvent e){
            Vector v_pittore=new Vector(); //contiene: nome e cognome
del pittore ed è locale
if(nomeP.getText().equals("")==true||cognomeP.getText().equals("")==true){
  //verifica se ci sono inseriti i dati
                   JOptionPane.showMessageDialog(null,"ERRORE",
"Controllo dati Pittore", JOptionPane.ERROR_MESSAGE);
            }
            else{
                int totVoci = PannelloPittore.artista.getItemCount();
//ritorna un intero uguale al numero di voci della ComboBox Artista
                int risp;
                int id=0;
                risp =
JOptionPane.showConfirmDialog(null,"CONFERMI?\n\nCOGNOME:" +"
"+cognomeP.getText()+"\n"+ "NOME:" + " " +nomeP.getText(), "Conferma
dati", JOptionPane.YES_NO_OPTION);
                if(risp==JOptionPane.YES_OPTION){
                    // Inserisco l'autore nella combo con l'id
incrementato rispetto all'ultimo inserito
                    if(totVoci==1){//se ancora è presente un solo
autore l'id sarà 1
                        id=1;
                    }
                    else{
                        String UltimoPittoreInserito = new
String(PannelloPittore.artista.getItemAt(totVoci-1).toString());
                        //assegna l'ultima autore inserito(alla
posizione ultima))
                        int indice =
UltimoPittoreInserito.indexOf(".");//restituisce l'indice fino al "."
ovvero il numero di caratteri dell'id
                        Integer com = new
Integer(UltimoPittoreInserito.substring(0,indice));//prelevando quindi
l'id
                        id = (int)com+1;//+1 perchè si parte da 0
                    }
                    //aggiunge alla Combo un pittore
PannelloPittore.artista.addItem(""+id+"."+cognomeP.getText().replace("
", "__")+""+nomeP.getText().replace(" ", "__"));
                    // Riempio il vettore dei pittori
                    v_pittore.add(""+nomeP.getText());
                    v_pittore.add(""+cognomeP.getText());
                    v_pittore.add(id);
                    PannelloPittore.vett_pittori.add(v_pittore);
                }
              }
        }
}
}
FILE3: PannelloQuadro.java
package GUI;
import java.awt.*;
import java.util.*;//package che serve per la classe Vector
import javax.swing.*;
import java.awt.event.*;
import java.util.EventObject;
import javax.swing.JOptionPane;
public class PannelloQuadro {
    static Vector vett_quadri = new Vector();
    static Vector vett_pittore = new Vector();  //per collegarsi alla
combo nn visualizzata di pittore
    /** Creates a new instance of PannelloQuadro */
    public PannelloQuadro() {
             InizializzaComponentiQ();
             //PannelloPittore pittore = new PannelloPittore();
    }
    public void InizializzaComponentiQ(){
        JFrame f = new JFrame("Quadro"); // crea un nuovo JFrame(una
finestra)per i dati del Pittore
        f.setBounds(200,200, 300,150);//settiamo la posizione e le
dimensioni
        //aggiungiamo un pannello al container del frame
        Container c = f.getContentPane();
        PannelloQ panel = new PannelloQ();
        c.add(panel);
        f.show();// mostra il JFrame
    }
class PannelloQ extends JPanel implements ActionListener{
        private JLabel nome;
        private JLabel tecnica;
        private JLabel pittore;
        private JTextField nomeQ;
        private JTextField tecnicaQ;
        private JButton b;
        private JButton scelta;
        private JComboBox pittoreQ;
        public PannelloQ(){
             super();
             //per il nome del quadro
             nome = new JLabel("Nome Quadro");
             nomeQ = new JTextField(15);
             add(nome);
             add(nomeQ);
             //per il tipo di tecnica del quadro
             tecnica = new JLabel("Tecnica Quadro");
             tecnicaQ = new JTextField(15);
             add(tecnica);
             add(tecnicaQ);
            //per la ComboBox relativa al pittore
            pittore = new JLabel("Pittore");
            add(pittore);
            pittoreQ = new JComboBox();
            //pittoreQ.setEditable(true);
            pittoreQ.setEditable(false);
            pittoreQ.addActionListener(this);
            add(pittoreQ);
            scelta = new JButton("seleziona");
            scelta.addActionListener(this);
            add(scelta);
            b = new JButton("OK");
            b.addActionListener(this);// registra l'oggetto panello
stesso come ascoltatore degli eventi
            add(b);
            }
         public void actionPerformed(ActionEvent e){
           Vector v_quadro=new Vector(); //contiene: nome del quadro e
tecnica
           Object pulsantePremuto = e.getSource();// si recupera il
riferimento all'oggetto che ha generato l'evento(si controlla che
pulsante è stato premuto)
           //preleva i dati relativi al pannello del Quadro
           if (pulsantePremuto == b){
if(nomeQ.getText().equals("")==true||tecnicaQ.getText().equals("")==true){
  //verifica se ci sono inseriti i dati
                    JOptionPane.showMessageDialog(null,"ERRORE",
"Controllo dati Quadro", JOptionPane.ERROR_MESSAGE);
                 }
                else{
                    int risp;
                    risp= JOptionPane.showConfirmDialog (null,
"CONFERMI?\n\nNOME DEL QUADRO:" + " " +nomeQ.getText()+ "\n" + "TECNICA
UTILIZZATA:" + " " +tecnicaQ.getText()+ "\n" +"PITTORE:" + " "
+pittoreQ.getSelectedItem(),"Conferma dati",
JOptionPane.YES_NO_OPTION);
                    if(risp==JOptionPane.YES_OPTION){
                        String str = new
String(""+pittoreQ.getSelectedItem());// recupera la voce selezionata o
scritta dall'utente
                                            //PittoreQ è la Combo
                        int ind = str.indexOf(".");////restituisce
l'indice fino al "." ,indice 1, 2 , 3...
                        v_quadro.add(str.substring(0, ind));//id
                        v_quadro.add(nomeQ.getText());
                        v_quadro.add(tecnicaQ.getText());
                        PannelloQuadro.vett_quadri.add(v_quadro);
                        nomeQ.setText("");
                        tecnicaQ.setText("");
                        pittoreQ.setSelectedIndex(0);//metodo usato per
selezionare al voce della combo che viene reimpostato a zero
                    }
                }
            }
             //si collega al Pannello del pittore
             if (pulsantePremuto == scelta){
                PannelloPittore preleva = new
PannelloPittore(pittoreQ,PannelloQuadro.vett_pittore);
            }
      }
}}
vi ringrazio anticipatamemnte e spero di non aver esagerato postando
tutto il codice. Per maggiori chiarimenti resto in attesa di vostre
richieste. Grazie a presto.

 tutto il codice.
Hai esagerato si! Se leggi bene il trace dell'eccezione, ad un certo 
punto ti dirą la linea di codice della tua classe che la genera. A quel 
punto posti il metodo(se breve) o le linee che lo circondano.
-- 
Emanuele Torrenti
Registered Linux User #409659
"I fought the law, and the law won"