• Lunes 23 de Diciembre de 2024, 00:07

Autor Tema:  Exception Nullpointerexception  (Leído 1353 veces)

robbie110487

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Exception Nullpointerexception
« en: Miércoles 5 de Abril de 2006, 00:21 »
0
Hola, estoy empezando un poco con java he estudiado lo basico en modo consola y estoy empezando con GUI, en el libro que estoy siguiendo viene como ejercicio propuesto realizar un programa que sume dos numeros, me he atorado en algo sencillo pero no encuentro la respuesta, ya que al dar click en el boton sumar me manda la excepcion NullPointerException y no puedo solucionarlo, tambien quisiera que las JTextField acepten solo numeros, el codigo es el siguiente:

Código: Text
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4.  
  5. public class suma extends JFrame
  6. {
  7.   public suma()
  8.   {
  9.     setSize(350,200);
  10.     setTitle("Programa que suma dos numeros");
  11.     setResizable(false);
  12.     setVisible(true);
  13.     setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  14.     iniciar();
  15.   }
  16.   private void iniciar()
  17.   {
  18.     JLabel instrucciones=new JLabel();
  19.     JLabel num1=new JLabel();
  20.     JLabel num2=new JLabel();
  21.     JLabel lblresultado=new JLabel();
  22.     JTextField txtnum1=new JTextField();
  23.     JTextField txtnum2=new JTextField();
  24.     JButton sumar=new JButton();
  25.     JButton salir=new JButton();
  26.     Container c=getContentPane();
  27.     c.setLayout(null);
  28.     instrucciones.setText("Escribe dos numeros y luego presiona el boton sumar.");
  29.     c.add(instrucciones);
  30.     instrucciones.setBounds(10,10,320,14);
  31.     c.add(num1);
  32.     num1.setText("Escribe el primer numero:");
  33.     num1.setBounds(10,50,200,14);
  34.     c.add(num2);
  35.     num2.setText("Escribe el segundo numero:");
  36.     num2.setBounds(10,80,200,14);
  37.     c.add(txtnum1);
  38.     txtnum1.setBounds(180,50,150,18);    
  39.     c.add(txtnum2);
  40.     txtnum2.setBounds(180,80,150,18);
  41.     salir.setText("Salir");
  42.     salir.setMnemonic('S');
  43.     c.add(salir);
  44.     salir.setBounds(248,120,80,18);
  45.     salir.addActionListener(new ActionListener()
  46.     {
  47.       public void actionPerformed(ActionEvent a)
  48.       {
  49.         System.exit(0);
  50.       }
  51.     });
  52.     sumar.setText("Sumar");
  53.     sumar.setMnemonic('u');
  54.     c.add(sumar);
  55.     sumar.setBounds(150,120,80,18);
  56.     sumar.addActionListener(new ActionListener()
  57.     {
  58.       public void actionPerformed(ActionEvent r)
  59.       {
  60.         accionDeSumar(r);
  61.       }
  62.     });
  63.     c.add(lblresultado);
  64.     lblresultado.setBounds(10,150,50,14);
  65.    
  66.   }
  67.   public void accionDeSumar(ActionEvent r)
  68.   {    
  69.     try
  70.     {
  71.     int numero1=Integer.parseInt(txtnum1.getText());
  72.     int numero2=Integer.parseInt(txtnum2.getText());
  73.     int resultado=numero1+numero2;
  74.     JOptionPane.showMessageDialog(null,
  75.                     "El resultado es "+resultado,
  76.                     "Suma",
  77.                     JOptionPane.PLAIN_MESSAGE);
  78.     }
  79.     catch(Exception e)
  80.     {
  81.       System.out.println(e);
  82.     }
  83.   }
  84.  
  85.   public static void main(String args[])
  86.   {
  87.     new suma();
  88.   }
  89.   private JTextField txtnum1;
  90.   private JTextField txtnum2;
  91.   private JLabel lblresultado;
  92. }
  93.  

 :hola:

RiLaRos

  • Miembro activo
  • **
  • Mensajes: 94
    • Ver Perfil
    • http://www.rilaros.net
Re: Exception Nullpointerexception
« Respuesta #1 en: Miércoles 5 de Abril de 2006, 05:43 »
0
Pues tu error esta en la doble declaracion de los JTextFields, ya que en un principio los declaras como private, luego los vuelves a declarar.

tu nuevo codigo seria este:

Código: Text
  1.  
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5.  
  6. public class suma extends JFrame
  7. {
  8.   public suma()
  9.   {
  10.     setSize(350,200);
  11.     setTitle("Programa que suma dos numeros");
  12.     setResizable(false);
  13.     setVisible(true);
  14.     setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  15.     iniciar();
  16.   }
  17.   private void iniciar()
  18.   {
  19.     JLabel instrucciones=new JLabel();
  20.     JLabel num1=new JLabel();
  21.     JLabel num2=new JLabel();
  22.     JLabel lblresultado=new JLabel();
  23.     txtnum1=new JTextField();
  24.     txtnum2=new JTextField();
  25.     JButton sumar=new JButton();
  26.     JButton salir=new JButton();
  27.     Container c=getContentPane();
  28.     c.setLayout(null);
  29.     instrucciones.setText("Escribe dos numeros y luego presiona el boton sumar.");
  30.     c.add(instrucciones);
  31.     instrucciones.setBounds(10,10,320,14);
  32.     c.add(num1);
  33.     num1.setText("Escribe el primer numero:");
  34.     num1.setBounds(10,50,200,14);
  35.     c.add(num2);
  36.     num2.setText("Escribe el segundo numero:");
  37.     num2.setBounds(10,80,200,14);
  38.     c.add(txtnum1);
  39.     txtnum1.setBounds(180,50,150,18);    
  40.     c.add(txtnum2);
  41.     txtnum2.setBounds(180,80,150,18);
  42.     salir.setText("Salir");
  43.     salir.setMnemonic('S');
  44.     c.add(salir);
  45.     salir.setBounds(248,120,80,18);
  46.     salir.addActionListener(new ActionListener()
  47.     {
  48.       public void actionPerformed(ActionEvent a)
  49.       {
  50.         System.exit(0);
  51.       }
  52.     });
  53.     sumar.setText("Sumar");
  54.     sumar.setMnemonic('u');
  55.     c.add(sumar);
  56.     sumar.setBounds(150,120,80,18);
  57.     sumar.addActionListener(new ActionListener()
  58.     {
  59.       public void actionPerformed(ActionEvent r)
  60.       {
  61.         accionDeSumar(r);
  62.       }
  63.     });
  64.     c.add(lblresultado);
  65.     lblresultado.setBounds(10,150,50,14);
  66.    
  67.   }
  68.   public void accionDeSumar(ActionEvent r)
  69.   {    
  70.     try
  71.     {
  72.     int numero1=Integer.parseInt(txtnum1.getText());
  73.     int numero2=Integer.parseInt(txtnum2.getText());
  74.     int resultado=numero1+numero2;
  75.     JOptionPane.showMessageDialog(null,"El resultado es "+resultado,"Suma",JOptionPane.PLAIN_MESSAGE);
  76.     }
  77.     catch(Exception e)
  78.     {
  79.       System.out.println(e);
  80.     }
  81.   }
  82.  
  83.   public static void main(String args[])
  84.   {
  85.     new suma();
  86.   }
  87.   private JTextField txtnum1;
  88.   private JTextField txtnum2;
  89.   private JLabel lblresultado;
  90. }
  91.  

Este funciona perfectamente.

Salu2... :kicking:
Ricardo La Rosa
RiLaRo's Blog
RiLaRos Web Developer
Nabaci Business Solutions

"Todo es posible si tan solo lo puedes imaginar"

robbie110487

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Exception Nullpointerexception
« Respuesta #2 en: Miércoles 5 de Abril de 2006, 22:48 »
0
Muchas gracias, funciono muy bien, vaya descuido jaja incluso asi venia en los ejemplos y no lo note jaja, aprendere a examinar mejor el codigo.

un saludo  :hola: