Foro de elhacker.net

Programación => Java => Mensaje iniciado por: noob2012 en 17 Diciembre 2014, 22:55 pm



Título: Error en main nullpointer
Publicado por: noob2012 en 17 Diciembre 2014, 22:55 pm
Hola, el programa me compila, pero no entiendo porque me da ese error al correrlo. ¿Que esta mal?

Código:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.Dimension;

public class Formulario extends JFrame implements ActionListener{
private JMenu menu1;
private JMenuBar mb;
private JMenuItem telefono,nombre,apellido;

public Formulario () {
mb=new JMenuBar();
setJMenuBar(mb);
menu1=new JMenu("Buscar");
mb.add(menu1);
telefono=new JMenuItem("telefono");
menu1.add(telefono);
telefono.addActionListener(this);
nombre=new JMenuItem("nombre");
menu1.add(nombre);
nombre=new JMenuItem("apellido");
menu1.add(apellido); //LINEA 40
}


    public void actionPerformed(ActionEvent e) {
    Container f=this.getContentPane();
        if (e.getSource()==telefono) {

        System.out.printf ("Su nombre de usuario es: ");
    }
    }

public static void main(String[] ar) {
        Formulario formulario1=new Formulario();
formulario1.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        formulario1.setBounds(10,20,300,200);
        formulario1.setVisible(true);
    }
 
}


C:\F>java Formulario
Exception in thread "main" java.lang.NullPointerException
        at java.awt.Container.addImpl(Unknown Source)
        at java.awt.Container.add(Unknown Source)
        at javax.swing.JPopupMenu.add(Unknown Source)
        at javax.swing.JMenu.add(Unknown Source)
        at Formulario.<init>(Formulario.java:40)
        at Formulario.main(Formulario.java:53)


Título: Re: Error en main nullpointer
Publicado por: Shell Root en 17 Diciembre 2014, 23:00 pm
Así de rapidez mira:
Código
  1. public Formulario ()
  2. {
  3.   mb = new JMenuBar();
  4.   setJMenuBar(mb);
  5.   menu1 = new JMenu("Buscar");
  6.   mb.add(menu1);
  7.   telefono = new JMenuItem("telefono");
  8.   menu1.add(telefono);
  9.   telefono.addActionListener(this);
  10.   nombre = new JMenuItem("nombre");
  11.   menu1.add(nombre);
  12.   nombre = new JMenuItem("apellido");
  13.   menu1.add(apellido); //LINEA 40
  14. }

No se mucho de Java pero creo que debería ser,
Código
  1. public Formulario ()
  2. {
  3.   mb = new JMenuBar();
  4.   setJMenuBar(mb);
  5.   menu1 = new JMenu("Buscar");
  6.   mb.add(menu1);
  7.   telefono = new JMenuItem("telefono");
  8.   menu1.add(telefono);
  9.   telefono.addActionListener(this);
  10.   nombre = new JMenuItem("nombre");
  11.   menu1.add(nombre);
  12.   apellido = new JMenuItem("apellido");
  13.   menu1.add(apellido); //LINEA 40
  14. }


Título: Re: Error en main nullpointer
Publicado por: noob2012 en 17 Diciembre 2014, 23:06 pm
Así de rapidez mira:
Código
  1. public Formulario ()
  2. {
  3.   mb = new JMenuBar();
  4.   setJMenuBar(mb);
  5.   menu1 = new JMenu("Buscar");
  6.   mb.add(menu1);
  7.   telefono = new JMenuItem("telefono");
  8.   menu1.add(telefono);
  9.   telefono.addActionListener(this);
  10.   nombre = new JMenuItem("nombre");
  11.   menu1.add(nombre);
  12.   nombre = new JMenuItem("apellido");
  13.   menu1.add(apellido); //LINEA 40
  14. }

No se mucho de Java pero creo que debería ser,
Código
  1. public Formulario ()
  2. {
  3.   mb = new JMenuBar();
  4.   setJMenuBar(mb);
  5.   menu1 = new JMenu("Buscar");
  6.   mb.add(menu1);
  7.   telefono = new JMenuItem("telefono");
  8.   menu1.add(telefono);
  9.   telefono.addActionListener(this);
  10.   nombre = new JMenuItem("nombre");
  11.   menu1.add(nombre);
  12.   apellido = new JMenuItem("apellido");
  13.   menu1.add(apellido); //LINEA 40
  14. }

Gracias maestro!!!! que bronca, me detengo una hora por ese error tan tonto. Gracias