Quando cerco di salvarla mi da l'errore di NullPointerException, come potrei risolvere?
codice:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Collections;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Riccardo
* Questa classe crea vari componenti per l'interfaccia grafica atte a comprendere meglio la simulazione di una banca
*/
public class InterfacciaGUI {
/**
* Costruttore frame
*/
public InterfacciaGUI (ArrayList<Operatore> opt,ArrayList<Cliente> cc,ArrayList<BankAccount> ac,ArrayList<Transazione> tr)
{
operatore=opt;
cliente=cc;
conti=ac;
transazione=tr;
frame=new JFrame();
frame1=new JFrame();
frame2=new JFrame();
frame3=new JFrame();
}
public void setAccesso1()
{
frame.setSize(300,75);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JRadioButton rbutton=new JRadioButton("Operatore",false);
final JRadioButton rbutton2=new JRadioButton("Cliente",false);
JButton accedi=new JButton("Accedi");
JPanel panel=new JPanel();
panel.add(rbutton);
panel.add(rbutton2);
panel.add(accedi);
frame.add(panel);
frame.setVisible(true);
class AccediListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(rbutton.getSelectedObjects()!=null)
setAccesso2();
else if(rbutton2.getSelectedObjects()!=null)
setOrdina();
}
}
AccediListener listener=new AccediListener();
accedi.addActionListener(listener);
}
public void setAccesso2()
{
frame1.setSize(300,150);
JLabel labe=new JLabel("Nome utente");
JLabel labe2=new JLabel("Password");
final JTextField utente=new JTextField(" ");
final JPasswordField pass=new JPasswordField(" ");
JButton cancella=new JButton("Cancella");
JButton avvia=new JButton("Avvia");
JPanel panel=new JPanel();
panel.add(labe);
panel.add(utente);
JPanel panel2=new JPanel();
panel2.add(cancella);
panel2.add(avvia);
JPanel panel3=new JPanel();
panel3.add(labe2);
panel3.add(pass);
frame1.add(panel,BorderLayout.NORTH);
frame1.add(panel3);
frame1.add(panel2,BorderLayout.SOUTH);
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setVisible(true);
class LoginListener implements ActionListener
{
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent e)
{
boolean trovato=false;
int i=0;
while(!trovato)
{
if(i<operatore.size())
{
if(utente.getText().equalsIgnoreCase(operatore.get(i).getDati()) && pass.getText().equalsIgnoreCase(operatore.get(i).getMat()))
{
trovato=true;
setSimulazione();
frame1.setVisible(false);
}
i++;
}
else
{
JOptionPane.showMessageDialog(frame2, "Nessun operatore esistente!");
break;
}
}
}
}
class CancellaListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
utente.setText(" ");
pass.setText(" ");
}
}
LoginListener listener=new LoginListener();
CancellaListener listener2=new CancellaListener();
cancella.addActionListener(listener2);
avvia.addActionListener(listener);
}
public void setSimulazione()
{
frame2.setSize(750,270);
final JTextArea simulation=new JTextArea(10,50);
JScrollPane scroll=new JScrollPane(simulation);
JPanel panel=new JPanel();
panel.add(scroll);
JButton avvia_s=new JButton("Avvia Simulazione");
JPanel panel2=new JPanel();
panel.add(avvia_s);
frame2.add(panel,BorderLayout.NORTH);
frame2.add(panel2,BorderLayout.SOUTH);
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.setVisible(true);
class AddSimulation implements ActionListener{
public void actionPerformed(ActionEvent e)
{
simulation.setText("Avvio Simulazione\n--------------\n");
for(int i=0;i<operatore.size();i++)
{
if(i==0)
simulation.append("Creo Operatori\n\n\n");
simulation.append(operatore.get(i).toString()+"\n\n");
}
for(int i=0;i<cliente.size();i++)
{
if(i==0)
simulation.append("Creo Clienti\n\n\n");
simulation.append(cliente.get(i).toString()+"\n\n");
}
for(int i=0;i<conti.size();i++)
{
if(i==0)
simulation.append("Creo Conti Bancari\n\n\n");
simulation.append(conti.get(i).toString()+"\n\n");
}
for(int i=0;i<transazione.size();i++)
{
if(i==0)
simulation.append("Creo Transazioni\n\n\n");
simulation.append(transazione.get(i).toString()+"\n\n");
}
for(int i=0;i<conti.size();i++)
{
if(i==0)
simulation.append("Saldi Aggiornati\n\n\n");
simulation.append(conti.get(i).toString()+"\n\n");
}
}
}
AddSimulation listener=new AddSimulation();
avvia_s.addActionListener(listener);
}
public void setOrdina()
{
frame3.setSize(500,500);
String[] s={"Operatori","Clienti","Conti Bancari","Transazioni"};
final String[] c={"Informazioni"};
final JComboBox combo=new JComboBox(s);
final DefaultTableModel model = new DefaultTableModel(c, 0);
final JTable table=new JTable(model);
JScrollPane scroll1=new JScrollPane(table);
JLabel ordina=new JLabel("Ordina per");
JPanel north=new JPanel();
north.add(ordina);
north.add(combo);
JPanel center=new JPanel();
center.add(scroll1);
frame3.add(north,BorderLayout.NORTH);
frame3.add(center,BorderLayout.CENTER);
frame3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame3.setVisible(true);
class OrdinaListener implements ActionListener{
public void actionPerformed(ActionEvent e)
{
switch(combo.getSelectedIndex())
{
case 0:{Collections.sort(operatore);
Object[]rows =new Object[operatore.size()];
model.setNumRows(0);
for(int i=0;i<operatore.size();i++)
{rows[0]=operatore.get(i).toString();
model.addRow(rows);
}
break;
}
case 1:{Collections.sort(cliente);
Object[] rows =new Object[cliente.size()];
model.setNumRows(0);
for(int i=0;i<cliente.size();i++)
{rows[0]=cliente.get(i).toString();
model.addRow(rows);
}
break;
}
case 2:{Collections.sort(conti);
Object[]rows =new Object[conti.size()];
model.setNumRows(0);
for(int i=0;i<conti.size();i++)
{rows[0]=conti.get(i).toString();
model.addRow(rows);
}
break;
}
case 3:{Collections.sort(transazione);
Object[]rows =new Object[transazione.size()];
model.setNumRows(0);
for(int i=0;i<transazione.size();i++)
{rows[0]=transazione.get(i).toString();
model.addRow(rows);
}
break;
}
}
}
}
OrdinaListener ordina2 = new OrdinaListener();
combo.addActionListener(ordina2);
}
private JFrame frame,frame1,frame2,frame3;
private ArrayList<BankAccount> conti;
private ArrayList<Operatore> operatore;
private ArrayList<Cliente> cliente;
private ArrayList<Transazione> transazione;
}
Grazie in anticipo!!