Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/06/2013, 14:49
delarosan1
 
Fecha de Ingreso: junio-2013
Mensajes: 28
Antigüedad: 10 años, 10 meses
Puntos: 1
Problema novato java null java.lang.NullPointerException

Hola a todos, estoy estudiando un grado superior y tengo un problema y es que me sale por pantalla un error java.lang.NullPointerException y no entiendo porque sale ni como solucionarlo.
Me podriais echar un cable?

- El error sale en la clase Operaciones por la mitad mas o menos, muchisimas gracias por adelantado.

Un saludo.


Clase NotasAlumno
Código:
package pidonDela;

public class NotasAlumno {
    private int calificacion;
    private String nombreMateria;

    public NotasAlumno() {
        calificacion=0;
        nombreMateria="";
    }

    public int getCalificacion() {
        return calificacion;
    }

    public void setCalificacion(int calificacion) {
        this.calificacion = calificacion;
    }

    public String getNombreMateria() {
        return nombreMateria;
    }

    public void setNombreMateria(String nombreMateria) {
        this.nombreMateria = nombreMateria;
    }
}

Clase Alumno
Código:
package pidonDela;

public class Alumno {
    private String nombreAlumno;
    private NotasAlumno notasAlumno;
    
    public Alumno() {
        nombreAlumno="";
        notasAlumno=null;
    }

    public String getNombreAlumno() {
        return nombreAlumno;
    }

    public void setNombreAlumno(String nombreAlumno) {
        this.nombreAlumno = nombreAlumno;
    }

    public NotasAlumno getNotasAlumno() {
        return notasAlumno;
    }

    public void setNotasAlumno(NotasAlumno notasAlumno) {
        this.notasAlumno = notasAlumno;
    }
}

Clase Operaciones(Error)
Código:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pidonDela;

import java.util.Arrays;
import javax.swing.JOptionPane;

/**
 *
 * @author Dela
 */
public class Operaciones {
    private int cantidadAprovados;
    private int cantidadSuspensos;
    private float promedioPromedios;
    private static int salida;
    private static String nombreAlumno;
    private static String nombreAsignatura;
    private static int nota;
    private static Alumno [] alumno;
    private static NotasAlumno notas;
    private static int posicionAlumno = 0;
    
    
    public static void pidon(){
    salida = Integer.parseInt(JOptionPane.showInputDialog("¿Desea Ingresar Datos de un Alumno?"+
                "\nPulsa 1 para ingresar un alumno, 2 para salir."));
    while (salida != 1 && salida != 2){
         System.out.println("Ha insertado un caracter erroneo");
         salida = Integer.parseInt(JOptionPane.showInputDialog("¿Desea Ingresar Datos de un Alumno?"+
         "\nPulsa 1 para ingresar un alumno, 2 para salir."));
         if (salida == 1 || salida == 2){
             break;
         }
    }
    while (salida == 1){
                
        
        
        
        
        
            nombreAlumno = JOptionPane.showInputDialog("Inserte el nombre del Alumno");
                
                
            Alumno[] newAlumnos;
            if (alumno== null)
            {
                //creo el vector de notas del dcto
                alumno = new Alumno[1];
            }
            else
            {
                newAlumnos = Arrays.copyOf(alumno, alumno.length+1);
                alumno=newAlumnos;

            }

//AQUI ME DA EL ERROR  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!       
            alumno[alumno.length-1].setNombreAlumno(nombreAlumno);
                
                
                
       
                
                nombreAsignatura="";
                while (!nombreAsignatura.equalsIgnoreCase("fin")){
                    
                    nombreAsignatura = JOptionPane.showInputDialog("Inserte el nombre del Modulo");
                    if(nombreAsignatura.equalsIgnoreCase("fin")){
                        break;
                    }
                    do{
                    nota = Integer.parseInt(JOptionPane.showInputDialog("Inserte la nota valida de 0 a 10"));
                    }while(nota>10 || nota<0);
                }
                
                
                
                
                
                
                
                System.out.println("Ha insertado un nuevo alumno"+alumno[posicionAlumno-1].getNombreAlumno());
                salida = Integer.parseInt(JOptionPane.showInputDialog("¿Desea Ingresar Datos de otro Alumno?"+
                "\nPulsa 1 para ingresar otro alumno, 2 para parar de ingresar."));
            while (salida != 1 && salida != 2){
                System.out.println("Ha insertado un caracter erroneo");
                salida = Integer.parseInt(JOptionPane.showInputDialog("¿Desea Ingresar Datos de otro Alumno?"+
                "\nPulsa 1 para ingresar otro alumno, 2 para parar de ingresar."));
                if (salida == 1 || salida == 2){
                    break;
                }
            }
    }//fin while 1 
    }//fin metodo pidon
}//fin clase
Main
Código:
package pidonDela;

public class Main {
    public static void main(String[] args) {
        // TODO code application logic here
        Operaciones.pidon();
    }
}

Última edición por delarosan1; 12/06/2013 a las 15:52