java.lang.NullPointerException was ist das?

Status
Nicht offen für weitere Antworten.
P

Pennywiser

Gast
Hallo hab mal ne frage bzw. ein problem. Hab das folgende Programm in der Schule gemacht, wir sollten dann noch ne zusatzaufgabe machen. als ich nun fertig war und den folgenden Quelltext hatte. hab ich das programm mal gestartet... das erste applet öffnet sich einwand frei nur wenn man dann auf "open" klickt bekomme ich ne fehlermeldung "java.lang.NullPointerException"
weiss jemand was das ist oda wie man es behebt??

vielen dank im voraus

Code:
Code:
import java.awt.*; 
import java.awt.event.*; 
import java.applet.*; 

public class Third extends Applet implements ActionListener 
{ 
    private TestWindow myWindow; 
    
    private Button buttonOpen; 
    private Button buttonEnlarge; 
    private Button buttonReduce; 
    private Button buttonClose; 
    
    private int sizeX = 0; 
    private int sizeY = 0; 
    
    
    public void init() 
    { 
        setLayout (new FlowLayout (FlowLayout.LEFT, 2, 0)); 
        
        setBackground (Color.white); 
        
        buttonOpen      = new Button ("Open"); 
        buttonEnlarge   = new Button ("Enlarge"); 
        buttonReduce    = new Button ("Reduce"); 
        buttonClose     = new Button ("Close"); 
        
        add (buttonOpen); 
        add (buttonEnlarge); 
        add (buttonReduce); 
        add (buttonClose); 
        
        buttonOpen.addActionListener (this); 
        buttonEnlarge.addActionListener (this); 
        buttonReduce.addActionListener (this); 
        buttonClose.addActionListener (this); 
        
        buttonEnlarge.setEnabled (false); 
        buttonReduce.setEnabled (false); 
        buttonClose.setEnabled (false); 
    } 
    
    
    public void actionPerformed (ActionEvent event) 
    { 
        if (event.getSource () == buttonOpen)       { openWindow    (); } else 
        if (event.getSource () == buttonEnlarge)    { enlargeWindow (); } else 
        if (event.getSource () == buttonReduce)     { reduceWindow  (); } else 
        if (event.getSource () == buttonClose)      { closeWindow   (); } 
    } 
    
    
    private void openWindow () 
    { 
        if (myWindow == null) 
        { 
            sizeX = 300; 
            sizeY = 200; 
            myWindow = new TestWindow   ("TestWindow", sizeX, sizeY); 
            myWindow.show (); 
            
            buttonOpen.setEnabled (false); 
            buttonEnlarge.setEnabled (true); 
            buttonReduce.setEnabled (true); 
            buttonClose.setEnabled (true); 
        } 
    } 
    
    
    private void enlargeWindow () 
    { 
        if (myWindow != null) 
        { 
            myWindow.setSize (sizeX += 100, sizeY += 100); 
            myWindow.requestFocus (); 
        } 
    } 
    
    
    private void reduceWindow () 
    { 
        if (myWindow != null) 
        { 
            if ((sizeX >= 100) & (sizeY >= 100)) 
            { 
                myWindow.setSize (sizeX -= 100, sizeY -= 100); 
                myWindow.requestFocus (); 
            } 
        } 
    } 
    
    
    private void closeWindow () 
    { 
        if (myWindow != null) 
        { 
            myWindow.dispose (); 
            myWindow = null; 
            
            buttonOpen.setEnabled (true); 
            buttonEnlarge.setEnabled (false); 
            buttonReduce.setEnabled (true); 
            buttonClose.setEnabled (false); 
        } 
    } 
} 
 


und TestWindow 
Code: 

import java.awt.*; 
import java.awt.event.*; 


public class TestWindow extends Frame implements ActionListener 
{ 
    private MenuBar menuBar; 
    
    private Menu menuFile; 
    private Menu menuColors; 
    private Menu menuGraphic; 
    private Menu menuWindow; 
    
    private MenuItem itemFirst; 
    private MenuItem itemSecond; 
    private MenuItem itemBlue; 
    private MenuItem itemYellow; 
    private MenuItem itemGreen; 
    private MenuItem itemRectangle; 
    private MenuItem itemTriangle; 
    private MenuItem itemOval; 
    private MenuItem itemLine; 
    private MenuItem itemClear; 
    private MenuItem itemClose; 
    
    private String symbol;    
    private String pushedItem; 
    private String showString = ""; 
    
    
    public TestWindow (String frameTitle, int x, int y) 
    { 
        super (frameTitle); 
        
        menuBar = new MenuBar (); 
        setMenuBar (menuBar); 
        
        menuFile = new Menu ("File"); 
        menuBar.add (menuFile); 
        
        itemFirst = new MenuItem ("First"); 
        itemSecond = new MenuItem ("Second"); 
        
        itemFirst.addActionListener (this); 
        itemSecond.addActionListener (this); 
        
        menuFile.add (itemFirst); 
        menuFile.add (itemSecond); 
        
        menuColors = new Menu ("Colors"); 
        menuBar.add (menuColors); 
        
        itemBlue    = new MenuItem ("Blue"); 
        itemYellow  = new MenuItem ("Yellow"); 
        itemGreen   = new MenuItem ("Green"); 
        
        itemBlue.addActionListener (this); 
        itemYellow.addActionListener (this); 
        itemGreen.addActionListener (this); 
        
        menuColors.add (itemBlue); 
        menuColors.add (itemYellow); 
        menuColors.add (itemGreen); 
        
        menuWindow = new Menu ("Graphic"); 
        menuBar.add (menuGraphic); 
        
        itemRectangle   = new MenuItem ("Rectangle"); 
        itemTriangle    = new MenuItem ("Triangle"); 
        itemOval        = new MenuItem ("Circle"); 
        itemLine        = new MenuItem ("Line"); 
        
        itemRectangle.addActionListener (this); 
        itemTriangle.addActionListener (this); 
        itemOval.addActionListener (this); 
        itemLine.addActionListener (this); 
        
        menuGraphic.add (itemRectangle); 
        menuGraphic.add (itemTriangle); 
        menuGraphic.add (itemOval); 
        menuGraphic.add (itemLine); 
        
        menuWindow = new Menu ("Window"); 
        menuBar.add (menuWindow); 
        
        itemClear = new MenuItem ("Clear"); 
        itemClose = new MenuItem ("Close"); 
        
        itemClear.addActionListener (this); 
        itemClose.addActionListener (this); 
        
        menuWindow.add (itemClear); 
        menuWindow.addSeparator (); 
        menuWindow.add (itemClose); 
        
        addWindowListener (new WindowAdapter () 
        { public void windowClosing (WindowEvent windowEvent) 
          { dispose (); }} ); 
          
        Cursor cursor = new Cursor (Cursor.CROSSHAIR_CURSOR); 
        setCursor (cursor); 
        
        setBackground (Color.white); 
        setSize (x, y); 
    } 
    
    
    public void actionPerformed (ActionEvent event) 
    { 
        pushedItem = event.getActionCommand (); 
        
        if (event.getSource () == itemFirst)    { showMessage ();                       } else 
        if (event.getSource () == itemSecond)   { showMessage ();                       } else 
        if (event.getSource () == itemBlue)     { setWindowBackground (Color.blue);     } else 
        if (event.getSource () == itemYellow)   { setWindowBackground (Color.yellow);   } else 
        if (event.getSource () == itemGreen)    { setWindowBackground (Color.green);    } else 
        if (event.getSource () == itemRectangle){ setSymbol ("r");                      } else 
        if (event.getSource () == itemTriangle) { setSymbol ("t");                      } else 
        if (event.getSource () == itemOval)     { setSymbol ("o");                      } else 
        if (event.getSource () == itemLine)     { setSymbol ("l");                      } else 
        if (event.getSource () == itemClear)    { clearWindow ();                       } else 
        if (event.getSource () == itemClose)    { closeWindow ();                       } 
    } 
    
    
    private void setSymbol(String symbol) 
    { 
        if(symbol == "r") {this.symbol = "Rectangle"; } else 
        if(symbol == "t") {this.symbol = "Triangle";  } else 
        if(symbol == "o") {this.symbol = "Oval";      } else 
        if(symbol == "l") {this.symbol = "Line";      } 
        repaint(); 
    } 

    
    private void setWindowBackground (Color color) 
    { 
        setBackground (color); 
    } 
    
    private void showMessage () 
    { 
        showString = "You took the " + pushedItem + " MenuItem!"; 
        repaint (); 
    } 
    
    private void clearWindow () 
    { 
        showString = ""; 
        setBackground (Color.white); 
        repaint (); 
    } 
    
    private void closeWindow () 
    { 
        dispose (); 
    } 
    
    public void paint (Graphics graphics) 
    { 
        graphics.drawString (showString, 10, 70); 
        if(this.symbol == "Rectangle"){graphics.drawRect (10, 50, 50, 50); } else 
        if(this.symbol == "Triangle") 
        { 
            int[] xs = {10,50,60,10}; 
            int[] ys = {10,30,70,10}; 
            graphics.drawPolygon (xs,ys,3); 
        } 
        else 
        if(this.symbol == "Oval"){graphics.drawOval (10, 50, 50, 50); } else 
        if(this.symbol == "Line"){graphics.drawLine (10, 50, 50, 50); } 
    } 
}
 

hupfdule

Top Contributor
Eine NullPointerException tritt auf, wenn du eine Methode auf einem Objekt aufrufst, dieses Objekt aber nicht vorhanden ist. Die Variable, die auf das Objekt verweisen sollte, ist null. Daher NullPointerException.

Ich habe wenig Lust deinen gesamten Quellcode zu lesen, daher schreib mal noch, in welcher Zeile die NPE auftritt (ist in der Exception mit angegeben).
 
S

SlaterB

Gast
ach macht doch Spass ;)

menuGraphic wird nirgendwo erzeugt?


menuWindow = new Menu ("Graphic");
wäre wohl die richtige Stelle
 
P

Pennywiser

Gast
Jo vielen dank, hab einfach das MenuWindow mit menuGraphic ersetzt weil Window ja darunter schon kommt^^
eine kleine feinheit ist jetzt noch und zwar macht clearWindow das fenster leider nicht leer obwohl als showString "" nichts stehen dürfte, aber sind leider noch die texte von den anderen Menüpunkten drin...
 
P

Pennywiser

Gast
^^
keine Ahnung haben in der Schule in dieser Form gemacht...
seit nicht zu hart mit mir bin erst seit kurzem bei java dabei^^

warum sollte man es denn nicht so machen??
 
S

SlaterB

Gast
in der paint-Operation hast du
if(this.symbol == "Rectangle"){..

da muss
if(this.symbol.equals("Rectangle")){
bzw.
if("Rectangle".equals(this.symbol)){
welches auch funktioniert, wenn die Variable null ist,

----------

bau in deine paint doch mal
System.out.println("showString ist: "+showString);
ein, was kommt da raus?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
D java.lang.NullPointerException Java Basics - Anfänger-Themen 19
X java.lang.NullPointerException fehler ? Java Basics - Anfänger-Themen 1
B java.lang.NullPointerException bei javafx Java Basics - Anfänger-Themen 10
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
H java.lang.NullPointerException Java Basics - Anfänger-Themen 4
G java.lang.NullPointerException Java Basics - Anfänger-Themen 3
E Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 2
J java.lang.NullPointerException in meiner JavaFXControllerKlasse Java Basics - Anfänger-Themen 26
D Communications link failure | java.lang.NullPointerException Java Basics - Anfänger-Themen 3
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
M Compiler-Fehler Java suckt - java.lang.NullPointerException Java Basics - Anfänger-Themen 12
L Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 2
S java.lang.NullPointerException Java Basics - Anfänger-Themen 4
G Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 4
A Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 7
P Interpreter-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 3
T Problem mit Eclipse? Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 4
S Fehler: "java.lang.NullPointerException" Java Basics - Anfänger-Themen 6
I Erste Schritte Ausführfehler: java.lang.NullPointerException Java Basics - Anfänger-Themen 3
1 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException Java Basics - Anfänger-Themen 5
S Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 11
V [Greenfoot] java.lang.NullPointerException Java Basics - Anfänger-Themen 12
S Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 10
J java.lang.NullPointerException Java Basics - Anfänger-Themen 18
K Interpreter-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 6
K OOP java.lang.NullPointerException Java Basics - Anfänger-Themen 2
B Exception in thread "main" java.lang.NullPointerException Fehler Hilfe! Java Basics - Anfänger-Themen 4
S Fehlermeldung: java.lang.NullPointerException Java Basics - Anfänger-Themen 10
A Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 16
K java.lang.NullPointerException in Array bei Arraylistübergabe Java Basics - Anfänger-Themen 7
G java.lang.NullPointerException Was tun? Java Basics - Anfänger-Themen 7
J java.lang.NullPointerException . Java Basics - Anfänger-Themen 5
G java.lang.NullPointerException Java Basics - Anfänger-Themen 2
S java.lang.NullPointerException - Bitte helft mir! Java Basics - Anfänger-Themen 5
S java.lang.NullPointerException Fehler bei Umrechnung Java Basics - Anfänger-Themen 3
P java.lang.NullPointerException Java Basics - Anfänger-Themen 19
M java.lang.NullPointerException at . Java Basics - Anfänger-Themen 4
S java.lang.nullpointerexception bei arrayübergabe Java Basics - Anfänger-Themen 30
S java.lang.NullPointerException bei Bildern Java Basics - Anfänger-Themen 13
G java.lang.NullPointerException beim objekt Java Basics - Anfänger-Themen 3
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
JaVaN0oB java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 18
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
H JUnit in Eclipse: java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 9
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
B java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 3
P java.lang.ClassCastException Bedeutung und Lösung Java Basics - Anfänger-Themen 3
J Erste Schritte java.lang.NoClassDefFoundError Java Basics - Anfänger-Themen 4
I java.lang.ArrayIndexOutOfBoundsException at lösung.main Java Basics - Anfänger-Themen 3
T Compiler-Fehler java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 2
R java.lang.ArrayIndexOutOfBoundsException: 0 Rechner Error Java Basics - Anfänger-Themen 4
D Erste Schritte Java.lang.NullPointer.Exception Java Basics - Anfänger-Themen 8
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
N jodaTime java.lang.IllegalArgumentException: Invalid format Java Basics - Anfänger-Themen 3
F Erste Schritte java.lang.StringIndexOutOfBoundsException Java Basics - Anfänger-Themen 3
R java.lang.StringIndexOutOfBoundsException Java Basics - Anfänger-Themen 1
V java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
H java.lang.NoClassDefFoundError Run as>> Run on Server Java Basics - Anfänger-Themen 2
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
S Java memory fehler: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa Java Basics - Anfänger-Themen 5
M java.lang.Enum.valueOf(Unknown Source) Java Basics - Anfänger-Themen 2
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
P Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 1
C Hilfe!!! java.lang.ClassCastException Java Basics - Anfänger-Themen 1
O java.lang.IndexOutOfBoundsException JTable autoSort Java Basics - Anfänger-Themen 5
W Methoden Rückgabedatentyp java.util.Map<java.lang.String,? extends ...> Java Basics - Anfänger-Themen 4
F Exception in thread main java.lang.StackOverflowError Java Basics - Anfänger-Themen 3
K Caused by: java.lang.NoClassDefFoundError: org/mindrot/jbcrypt/BCrypt Java Basics - Anfänger-Themen 0
OnDemand java.lang.reflect.InvocationTargetException Java Basics - Anfänger-Themen 9
J Klassen java.lang.String - lexikographisches Sortieren Java Basics - Anfänger-Themen 5
T Erste Schritte import java.lang.System.out Java Basics - Anfänger-Themen 4
H Classpath java.lang.NoClassDefFoundError externe Libary Java Basics - Anfänger-Themen 4
M Exception in thread "main" java.lang.NoClassDefFoundError: MeineKlasse Java Basics - Anfänger-Themen 12
X Applet Fehler: java.lang.reflect.InvocationTargetException Java Basics - Anfänger-Themen 45
B java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
K Date cannot be cast to java.lang.Integer Java Basics - Anfänger-Themen 4
H java.lang.IndexOutOfBoundsException bei verschachtelter ArrayList Java Basics - Anfänger-Themen 9
V java.lang.NoSuchMethodError Java Basics - Anfänger-Themen 2
J java.lang.math asin() Java Basics - Anfänger-Themen 18
R Compiler-Fehler java.lang.ArrayIndexOutOfBoundsException, warum? Java Basics - Anfänger-Themen 6
K Error: java.lang.NoSuchMethodException Java Basics - Anfänger-Themen 2
M Compiler-Fehler Fehler Meldung java.lang.NumberFormatException: empty String Java Basics - Anfänger-Themen 2
G java.lang.ClassNotFoundException Java Basics - Anfänger-Themen 4
S String index out of range: 8 at java.lang.String.substring(Unknown Source) Java Basics - Anfänger-Themen 13
X Interpreter-Fehler "java.lang.NullPionterException: null" bei BlueJ Java Basics - Anfänger-Themen 10
P java.lang.ClassCastException Java Basics - Anfänger-Themen 2
D java.lang.NoSuchMethodError: main Java Basics - Anfänger-Themen 11
S expected java.lang.string but found char Java Basics - Anfänger-Themen 5
S Umgebungsvariable Exception in thread "main" java.lang.UnsatisfiedLinkError: no J3D in java.librar y.path Java Basics - Anfänger-Themen 15
S Compiler-Fehler java.lang.SecurityException: Invalid signature file digest for Manifest main attributes Java Basics - Anfänger-Themen 5
M Klassen Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 2
A Compiler-Fehler unreported exception java.lang.Exception; must be caught or declared to be thrown Java Basics - Anfänger-Themen 7
K Fehlermeldung: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 Java Basics - Anfänger-Themen 4
M Datentypen java.util.Arrays$ArrayList cannot be cast to [Ljava.lang.String; Java Basics - Anfänger-Themen 11
F Ich kenn mich nicht mehr aus - 'java.lang.NoSuchMethodError: main' in Applet? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben