Visualizza messaggio singolo
Vecchio 31-08-2005, 23.47.45   #1
GiulioCesare
Senior Member
 
L'avatar di GiulioCesare
 
Registrato: 02-04-2003
Loc.: Roma
Messaggi: 313
GiulioCesare promette bene
[Java] Eccezione NullPointerException

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
{
	public ButtonFrame()
	{
		setTitle("Applicazione");
		setSize(400,400);

		ButtonPanel panel = new ButtonPanel();
		Container contentPane=getContentPane();
		contentPane.add(panel);

		ButtonPanel panel2 = new ButtonPanel(1);
		Container pane=getContentPane();
		pane.add(panel2, BorderLayout.SOUTH);
	}
}

class ButtonPanel extends JPanel
{
	public ButtonPanel()
	{
		JLabel label = new JLabel("Numeri");
		JTextField testo = new JTextField(10);

		add(label);
		add(testo);

		Azione a = new Azione(testo);
	}

	public ButtonPanel(int v)
	{
		JButton estrai = new JButton("Estrai");
		add(estrai);
		Azione b = new Azione();
		estrai.addActionListener(b);
	}

	public ButtonPanel(String n)
	{
		System.out.println("Terzo Costruttore");
	}

	int calcola()
	{
		return (int) (Math.random() * 100);
	}
}

class Azione implements ActionListener
{

	ButtonPanel x = new ButtonPanel("XXX");
	private 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);
		}
	}
}
GiulioCesare non  collegato   Rispondi citando