NullPointer Exception

soa

Erfahrenes Mitglied
Hallo zusammen,

ich hab ein lauffähiges Programm mal von AWT in SWING umgeschrieben und mit abstracten Klassen gearbeitet. Das Programm läßt sich auch kompilieren, beim ausführen erhalte ich jedoch eine

NullPointerException.....

habe schon so einiges umgestellt, aber die Fehlermeldung will nicht weichen.
Irgendetwas scheint .

Die NullPointerException wird ausgelöst, wenn versucht wird, über einen Verweis, der den Wert null hat, ein Datenelement, eine Methode oder ein Array-Element anzusprechen.
Nur welches?

Mein Code:

Code:
import java.awt.*;
import java.awt.event.*;
import java.awt.Container;
import javax.swing.*;
import java.awt.Color;


public class Kasse1 extends JFrame implements KeyListener{


	//Variablen
	int kaffee = 0;
	int mineral = 0;

    //Label f¸r die Ausgabe des textes
    JLabel l1;
    JLabel l2;
    JLabel l3;


    //Container wird deklariert
    Container pane;


	public static void main (String args[]){


    Kasse1 frame = new Kasse1();
    frame.setSize(300,500);
    frame.setLocation(200,100);
    frame.setVisible(true);
    frame.setTitle("Die ultimative Klasse");

    //Listener-Aufruf erfolgt ueber anonyme Klasse
	       WindowListener listener = new WindowAdapter(){
	          public void windowClosing(WindowEvent e){
	           System.exit(0);
	          }
        };

     frame.addWindowListener(listener);

	}//main


	//Konstruktor
	public Kasse1(){



   //Festlegen des Layouts
   pane.setLayout(new GridLayout(3,3));
   pane.setBackground(Color.blue);



    // Containter wird zugewiesen
     pane = getContentPane();

   pane.add(l1);
   pane.add(l2);
   pane.add(l3);

    JButton b1 = new JButton ("Kaffee/Tee");
    JButton b2 = new JButton ("Mineralwasser");
    JButton b3 = new JButton ("Rechnung");



	//abbstact class Button1
    b1.addActionListener(new ActionListener(){
		public void actionPerformed (ActionEvent e){
			kaffee++;
			l1.setText(String.valueOf(kaffee)+" Kaffee/Tee");
	   }
	});

	//abstract class Button2
	b2.addActionListener(new ActionListener(){
			public void actionPerformed (ActionEvent e){
				mineral++;
				l2.setText(String.valueOf(kaffee)+" Mineralwasser");
		   }
	});

    //abstarct class Button3
	b3.addActionListener(new ActionListener(){
			public void actionPerformed (ActionEvent e){

				l3.setText(String.valueOf(kaffee*0.5 + mineral*1)+" Euro");
		   }
	});


	//Buttons werden dem Container hinzugef¸gt
    pane.add(b1);
    pane.add(b2);
    pane.add(b3);

    pane.addKeyListener(this);

	}//Konstruktor



	public void keyPressed(KeyEvent event)
	 	{
			if(event.getKeyCode() == KeyEvent.VK_ESCAPE){
				setVisible(false);
				dispose();
				System.exit(0);
			}
		}

		public void keyReleased(KeyEvent event)
		{
		}

		public void keyTyped(KeyEvent event)
		{
	}

}//Kasse1

Über einen Hinweis wäre ich sehr dankbar...

Grüsse
SOA
 
soa hat gesagt.:
Hallo zusammen,

ich hab ein lauffähiges Programm mal von AWT in SWING umgeschrieben und mit abstracten Klassen gearbeitet. Das Programm läßt sich auch kompilieren, beim ausführen erhalte ich jedoch eine

NullPointerException.....

habe schon so einiges umgestellt, aber die Fehlermeldung will nicht weichen.
Irgendetwas scheint .

Die NullPointerException wird ausgelöst, wenn versucht wird, über einen Verweis, der den Wert null hat, ein Datenelement, eine Methode oder ein Array-Element anzusprechen.
Nur welches?

Über einen Hinweis wäre ich sehr dankbar...

Grüsse
SOA


Lies die Zeile mit der NPE Fehlermeldung, da steht doch, in welcher Zeile sie fliegt bzw warum.
 
Hi,
du musst deine JLabels und deinen Container schon erst mal instanzieren bevor du sie irgendwo hinzufügst bzw. ihnen irgendein Layout zuweist.
Versuchs mal mit :

JLabel l1=new JLabel("erstes Label");
JLabel l2=new JLabel("zweites Label");
JLabel l3=new JLabel("drittes Label");

Container pane= new Container();

dann müsste es (zumindest ohne eine Exception zu werfen) funktionieren.

Gruß Charly
 
Zurück