Ciao a tutti, ho 1 problema: sto progettando 1 programmino che gestisce un distributore di sigarette, ma non riesco a implementare bene il Login per l'eventuale modifica dei prodotti da parte dell'amministratore.
Quando schiaccio la JButton 'Modifica' vorrei che richiamasse il metodo booleano Manager.login che mi restituisce true se il login è andato a buon fine o un messaggio di errore; il problema è che quando apro la finestra Manager mi da un errore:
" Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException".

Questa è la parte della classe che chiama il metodo Login:
public void actionPerformed (ActionEvent e) {

if (e.getSource() == Modifica)
{
manager Manager = new manager();

Manager.login();

if(Manager.login());
{

Conferma.setVisible(true);
Modifica.setVisible(false);
System.out.println("Modifica");
Prezzomod.setVisible(true);
Prezzo.setText("Prezzo: ");
}
}

if (e.getSource() == Conferma)
{
Conferma.setVisible(false);
Modifica.setVisible(false);
Annulla.setVisible(false);
Prodotto.setText(" ");
Tipo.setText(" ");
Marca.setText(" ");
Prezzo.setText(" ");
Prezzomod.setVisible(false);
Toolkit t = Toolkit.getDefaultToolkit();
imm = t.getImage("immagini/null.bmp");
MediaTracker m = new MediaTracker(this);
m.addImage(imm, 1);
try {m.waitForAll();}
catch (InterruptedException g) {}
this.update(getGraphics());
ins ();
JOptionPane.showMessageDialog(new JFrame(),
"SALVATAGGIO ESEGUITO CORRETTAMENTE","Salvataggio",
JOptionPane.WARNING_MESSAGE);
}

if (e.getSource() == Annulla)
{
Modifica.setVisible(false);
Annulla.setVisible(false);
Conferma.setVisible (false);
Prezzomod.setVisible (false);
Prodotto.setText(" ");
Prezzo.setText(" ");
Marca.setText(" ");
Tipo.setText(" ");
Toolkit t = Toolkit.getDefaultToolkit();
imm = t.getImage ("immagini/null.bmp");
MediaTracker m = new MediaTracker (this);
m.addImage (imm,1);
try {m.waitForAll();}
catch (InterruptedException g) {}
this.update (getGraphics());
}
}
Questa è la classe manager:
public class manager extends JPanel implements ActionListener{

JFrame jframe;
JPanel jpanel;
JLabel inserisci1, inserisci2;
JTextField Nomeutente;
JPasswordField Passwordona;
String nomeutente;
String password;
JButton Login = new JButton ("Login");


public manager() {
jframe = new JFrame("Login");
jframe.setSize(400, 130);
jframe.setLocation(400, 100);

Container container = jframe.getContentPane();

jpanel = new JPanel();
container.add(jpanel);

jpanel.setLayout(new GridLayout(3,2));
inserisci1 = new JLabel();
inserisci1.setText("Inserisci il nome utente");
inserisci1.setBounds(200, 75, 100, 30);
jpanel.add(inserisci1);

Nomeutente = new JTextField();
Nomeutente.setBounds(250, 45, 280, 100);
Nomeutente.addActionListener(this);
Nomeutente.setToolTipText("Inserisci lo username qui");
jpanel.add(Nomeutente);

inserisci2 = new JLabel();
inserisci2.setText("Inserisci la password");
inserisci2.setBounds(100, 45, 100, 30);
jpanel.add(inserisci2);

Passwordona = new JPasswordField();
Passwordona.setBounds(250, 45, 280, 100);
Passwordona.addActionListener(this);
Passwordona.setToolTipText("Inserisci la password qui");
jpanel.add(Passwordona);


Login.setBounds(420, 80, 100, 30);
Login.addActionListener(this);
jpanel.add(Login);

jframe.show();
}

public void actionPerformed (ActionEvent e) {


if (e.getSource() == Login)
{

nomeutente = Nomeutente.getText();
password = Passwordona.getText();
System.out.println(login());


}
}


public boolean login()
{

if (nomeutente.equals("bordo") && password.equals("bordo"))
{
jframe.dispose();
return true;

}
else
{
JLabel errorFields = new JLabel("<HTML><FONT COLOR = Blue>Devi inserire la password!!</FONT></HTML>");
JOptionPane.showMessageDialog(null,errorFields);
return false;
}
}
}
Sono alle prime armi, se qualcuno riesce a darmi 1 dritta sarebbe fantastico.
Ciao.