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); } } }

Rispondi quotando