Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    24

    [JAVA]Problema nel salvare questa classe

    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!!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Cosa vuol dire "quando cerco di salvarla"?

    PS: Perchè crei un blocco per ogni "case" dello switch? Pur non essendo "errato", generalmente lo switch ha questa forma... creare dei blocchi può produrre strani comportamenti dovuti a variabili che vanno fuori scope:

    codice:
    switch( controllo ) {
       case 1:
          ... // tutte le istruzioni
          break;
    
       case 2:
          ... // tutte le istruzioni
          break;
    }
    (come vedi, non apro alcuna parentesi graffa nei case).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3

    Re: [JAVA]Problema nel salvare questa classe

    Originariamente inviato da Hr90uB
    Quando cerco di salvarla mi da l'errore di NullPointerException, come potrei risolvere?
    Credo che l'eccezione si verifichi a runtime in fase di esecuzione e non di salvataggio e sicuramente nello stacktrace vi è una dettagliata descrizione della stessa con informazioni riguardo alla classe, al metodo ed alla riga in cui essa si verifica.
    Posta queste informazioni.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    24
    No il problema è appunto questo, non lancia nemmeno lo stacktrace in quanto con eclipse quando voglio salvare la classe esce scritto:
    codice:
    Save Failed java.lang.NullPointerException
    Solo su questa classe e non sulle altre.

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Mi sa che è un problema di Eclipse... che c'entra Java con il salvataggio di un sorgente su disco da parte dell'ambiente di sviluppo... prova a controllare che vi siano tutti i permessi di scrittura nella directory in cui vai a salvare il sorgente ed, eventualmente, prova a re-installare Eclipse.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    24
    Grazie per la vostra disponibilità e i vostri consigli!!

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.