Salve ragazzi ho un piccolo problema con un'applicazione grafica, il programma dopo la pressione del pulsante deve inserire in una casella di testo un numero casuale, questo non accade e mi viene segnalato l'errore: java.lang.NullPointerException , quando nel metodo actionPerformed cerco di fare questo textField.setText(z), comunque posto il codice con la speranza che qualcuno mi aiuti.
codice:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.lang.*;
import java.math.*;
public class numeri4
{
public static void main(String[] args)
{
ButtonFrame frame = new ButtonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class ButtonFrame extends JFrame
{
JPanel panel = new JPanel();
JPanel panel2 = new JPanel();
Container contentPane=getContentPane();
JLabel label = new JLabel("Numeri");
JTextField testo = new JTextField(10);
JButton estrai = new JButton("Estrai");
ButtonFrame(int v)
{
System.out.println("Secondo costruttore");
}
public ButtonFrame()
{
setTitle("Applicazione");
setSize(400,400);
contentPane.add(panel);
panel.add(label);
panel.add(testo);
contentPane.add(panel2, BorderLayout.SOUTH);
panel2.add(estrai);
Azione a = new Azione(testo);
Azione b = new Azione();
estrai.addActionListener(b);
}
int calcola()
{
return (int) (Math.random() * 100);
}
}
class Azione implements ActionListener
{
ButtonFrame x = new ButtonFrame(1);
JTextField textField;
public Azione(JTextField aTextField)
{
textField = aTextField;
}
public Azione()
{
System.out.println("Costruttore Listener");
}
public void actionPerformed(ActionEvent event)
{
String command= event.getActionCommand();
int s;
String z;
if(command.equals("Estrai"))
{
s=x.calcola();
z=Integer.toString(s);
textField.setText(z);
}
}
}