Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

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

  2. #2
    mi sembra ke tu nn aggiunga il textField al panel

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.