GiulioCesare
31-08-2005, 23.47.45
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.
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_CLOS E);
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);
}
}
}
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_CLOS E);
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);
}
}
}