Ciao a tutti, a scuola stiamo facendo grafica e oggi a casa, mentre tentavo di fare un programma, sono incappato in questo errore... Non capisco da cosa deriva però!
codice:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FinCanv extends Frame implements ActionListener{
Persona a[]=new Persona[3];
Panel p1=new Panel();
Panel p2=new Panel();
Panel p3=new Panel();
Panel p4=new Panel();
private TextField nome=new TextField(15);
private TextField cognome=new TextField(15);
private Button b=new Button("Visualizza info");
private Choice codF=new Choice();
public FinCanv(){
super("Visualizza info");
addWindowListener(new GestoreFinestra());
p1.add(new Label("Nome"));
p1.add(nome);
p2.add(new Label("Cognome"));
p2.add(cognome);
p3.add(b);
p4.add(codF);
setLayout(new GridLayout(3,2,5,10));
add(p1);
add(p2);
add(p3);
add(p4);
b.addActionListener(this);
for(int i=0;i<3;i++){
a[i].setNome(JOptionPane.showInputDialog("Inserisci nome"));
a[i].setCognome(JOptionPane.showInputDialog("Inserisci cognome"));
a[i].setCod(JOptionPane.showInputDialog("Inserisci codice fiscale"));
}
inCombo();
}
public void inCombo(){
for(int i=0;i<3;i++){
codF.addItem(a[i].getCod());
}
}
public void actionPerformed(ActionEvent e) {
String z=e.getActionCommand();
String c,b;
if(z.equals("Visualizza info")){
switch(codF.getSelectedIndex()){
case 0:
c=a[0].getNome();
nome.setText(c);
b=a[0].getCognome();
cognome.setText(b);
break;
case 1:
c=a[1].getNome();
nome.setText(c);
b=a[1].getCognome();
cognome.setText(b);
break;
case 2:
c=a[2].getNome();
nome.setText(c);
b=a[2].getCognome();
cognome.setText(b);
break;
}
}
}
}
-------- main -------
public class Principale{
public static void main(String[] args) {
FinCanv f=new FinCanv();
f.pack();
f.setVisible(true);
}
}
e questo è il codice dell'errore!
codice:
Exception in thread "main" java.lang.NullPointerException
at FinCanv.<init>(FinCanv.java:30)
at Principale.main(Principale.java:5)
Grazie a tutti per l'aiuto!