NPE-Fehler

Status
Nicht offen für weitere Antworten.
B

blaues_etwas

Gast
Ich habe einen seltsamen Fehler und ich komm mit diesem nicht zurecht. Es handelt sich um diese Programmzeile:

Code:
label[3].setIcon(meinIcon.icon);

Dabei kommt die Fehlermeldung einer NullPointerException. Das heißt doch normalerweise, dass ich auf ein nicht existierendes Element des Feldes zugreifen möchte. Raus gefunden habe ich aber, dass der Aufruf "meinIcon.icon" den Fehler verursacht.
Wie behebe ich den Fehler ?

mfg blaues_etwas
 
B

blaues_etwas

Gast
Wann ist ein Objekt null ?
icon wurde ein ImageIcon zugewiesen, falls du das meinst.
 
M

maki

Gast
Wann ist ein Objekt null ?
Gar nicht, null ist kein Objekt.

In Java Arbeitet man mit Referenzen auf Objekte, nicht mit Objekten selbst.
Referenzen können auf null zeigen, sobald man versucht null zu dereferenzieren (zb. meinIcon.icon), gibt eine NPE.

Nebenbei, warum keine getter methode für Icon???

Nachtrag: label[3] könnte auch null sein.
 
B

blaues_etwas

Gast
Das mit dem null verwirrt mich grad. Gibt es Quellen, wo das genauer erklärt wird ?
Habs auch schon mit einer Get-Methode gemacht, ändert aber nichts daran.
 

JavaAdam

Mitglied
Eine Variable durchläuft drei Phasen:

1.Variable wird deklariert: z.B. JLabel meinLabel;

Dadurch hat die Variable einen Namen, aber ihr Wert ist null, denn es wurde noch kein Objekt zugeordnet. D.h. die Referenz zeigt auf quasi nichts. Hier kannst du Methoden zwar auf dem Objekt im Code anwenden, allerdings wird zur Laufzeit ein NPE geschmißen.

2.Variable wird initialisiert: mein Label = new JLabel();

Ab hier zeigt die Referenz auf ein neues Objekt. Es zeigt nicht mehr auf null.

3. Variable wird vernichtet -> Speicher freigeben.

Javaentwickler juckt das erstmal nicht, da dies der Garbage Collector macht.

In deinem Fall gibt es die bereits erwähnten Möglicheiten: das JLabel ist null oder meinIcon ist null.

Tipp: In solche Fällen hilft oft der Debugger. Es lohnt sich damit mal zu beschäftigen.
 
B

blaues_etwas

Gast
Hab immer noch das selbe Problem und ich verzweifel langsam..
Ich hab sogar ein neues Projekt angefangen und dieses mit dem essentiellen Code gefüllt, aber wieder die NPE. Wahrscheinlich ist es was total simples und ich bin zugleich blind wie ein Maulwurf.
Hab mich mal mit dem Debugger beschäftigt, aber ihn nicht zum laufen gebracht .. :|
Wenn ihr mir noch helfen wollt, kann ich mal etwas Code veröffentlichen.
 
G

Guest

Gast
blaues_etwas hat gesagt.:
Hab immer noch das selbe Problem und ich verzweifel langsam..
Ich hab sogar ein neues Projekt angefangen und dieses mit dem essentiellen Code gefüllt, aber wieder die NPE. Wahrscheinlich ist es was total simples und ich bin zugleich blind wie ein Maulwurf.
Hab mich mal mit dem Debugger beschäftigt, aber ihn nicht zum laufen gebracht .. :|
Wenn ihr mir noch helfen wollt, kann ich mal etwas Code veröffentlichen.

Vermutung 1)
Du erstellst das Array mit Labels, aber keine Labels selbst
Code:
JLabel label = new JLabel[10];
...
label[3].setIcon(meinIcon.icon); // label[3] ist null
Vermutung 2)
Du greifst auf meinIcon zu, während es noch null ist

Vermutung 3)
Du greifst auf meinIcon.icon zu, während 'icon' noch null ist.

;)

Das mit dem Debugger ist nicht Rocket Sience. Einfach einen Breakpoint an Anfang der Methode setzen,
in der du den Fehler vermutest (siehe Zeilennummer in der Exception) und das Programm bis daghin
laufen lassen.
 
G

Guest

Gast
:autsch: Ätch! c verschluckt. Rocket Science sollte es heissen.
 
B

blaues_etwas

Gast
Hier jetzt nicht mit einem Label sondern mit einem JToggleButton. Ändert aber nichts an der Problematik. Hoffe durch den Folgenden Code müssen keine Vermutungen mehr gestellt werden, sondern konkrete Lösungsvorschläge.

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Brett extends JPanel implements ActionListener
{
	JToggleButton button;
	Spieler spieler;
	public Brett(){	
		button = new JToggleButton("klick");
		add(button);
		button.addActionListener(this);
	}
	public void actionPerformed(ActionEvent e){
 		if( e.getSource() == button )
		{
			button.setIcon(spieler.getLogo());
		}
	}
}

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Spieler extends JPanel{
	ImageIcon logo = new ImageIcon("logo.gif");
	public Spieler(){	}
	public ImageIcon getLogo(){
		return logo;
	}
}

Beim drücken von dem Button soll dieser das Icon, das in Spieler abgelegt ist, annehmen. Wenn gedrückt wird, kommt die NPE. Zwei weitere Klassen für das Management sind hier jetzt nicht aufgeführt.
Danke an alle, dir mir Helfen !!
 
G

Guest

Gast
Dein Spieler wird nie initialisiert.
Code:
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
class Brett extends JPanel implements ActionListener 
{ 
   JToggleButton button; 
   Spieler spieler; 
   public Brett(){    
      button = new JToggleButton("klick"); 
      add(button); 
      button.addActionListener(this); 
   } 
   public void actionPerformed(ActionEvent e){ 
      if( e.getSource() == button ) 
      { 
         button.setIcon(spieler.getLogo());  // spieler ist null, hier knallt's.
      } 
   } 
}
 
B

blaues_etwas

Gast
OMG :shock: .. ich wusste es doch, was ganz banales. Mir war aber nicht bewusst, dass ich im brett noch einmal Spieler initialisieren muss. Spieler hab ich zwar schon in einer anderen Klasse initialisiert, und deshalb war ich der Meinung, dass es einmal für das ganze Programm vollkommen ausreicht.
Ham wa was gelernt .. :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S JavaFX Fehler bei ImageView, Invalid URL AWT, Swing, JavaFX & SWT 6
hannibalstgt Fehler bei JCOMBOBOX GUI Anzeige AWT, Swing, JavaFX & SWT 4
J Fehler bei jFame.setTitle() AWT, Swing, JavaFX & SWT 8
thor_norsk SpringBoot-Fehler AWT, Swing, JavaFX & SWT 7
J Ich kriege eine Fehler Messesage bei meinem Media Player AWT, Swing, JavaFX & SWT 8
H Fehler: Zum Ausführen dieser Anwendung benötigte JavaFX-Runtime-Komponenten fehlen AWT, Swing, JavaFX & SWT 44
S Fehler beim Öffnen weiterer FXML AWT, Swing, JavaFX & SWT 11
S JavaFX Fehler zwischen View und Controller bei MouseEvent (MVC) AWT, Swing, JavaFX & SWT 13
T ListView nach Erweiterung Fehler in CellFactory AWT, Swing, JavaFX & SWT 8
beli3ver JavaFX Anwendung startet nicht, kann den Fehler nicht finden (Exception in Application start method) AWT, Swing, JavaFX & SWT 1
J "Exception in thread "AWT-EventQueue-0"" Fehler AWT, Swing, JavaFX & SWT 3
parrot JavaFX Fehler AWT, Swing, JavaFX & SWT 4
H JavaFX JavaFX Import Fehler AWT, Swing, JavaFX & SWT 4
T Anderen Java Code durch Code kompilieren und Fehler in Label ausgeben AWT, Swing, JavaFX & SWT 5
M AWT Kann meinen Fehler beim ActionListener nicht finden AWT, Swing, JavaFX & SWT 5
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
A eine Fehler AWT, Swing, JavaFX & SWT 9
A Fehler beim Hintergrund AWT, Swing, JavaFX & SWT 17
L JavaFX Fehler beim setzen von Farben AWT, Swing, JavaFX & SWT 16
B JavaFX Text wird nicht angezeigt, kein Fehler AWT, Swing, JavaFX & SWT 2
W fillRect() in Schleife spukt nur Fehler aus AWT, Swing, JavaFX & SWT 3
S Fehler: Hauptklasse neon.Main konnte nicht gefunden oder geladen werden AWT, Swing, JavaFX & SWT 5
Tronert JavaFX Fehler beim Ändern der font-weight AWT, Swing, JavaFX & SWT 7
Tommy135 JavaFX JavaFX Fehler beim Scenewechsel AWT, Swing, JavaFX & SWT 23
V JavaFX Button Controller Fehler, trotz Erfolg in einem anderem Code? AWT, Swing, JavaFX & SWT 7
E Fehler bei Button AWT, Swing, JavaFX & SWT 1
L Unbekannter Fehler AWT, Swing, JavaFX & SWT 13
H JavaFX Kriege fehler beim Fenster wechseln AWT, Swing, JavaFX & SWT 7
I Fehler bei Alert AWT, Swing, JavaFX & SWT 6
J Fehler bei PixelColor erkennung AWT, Swing, JavaFX & SWT 4
T Fehler bei ActionEvent? AWT, Swing, JavaFX & SWT 3
V Fehler bei Würfelsimulator GUI AWT, Swing, JavaFX & SWT 2
Z GUI-Problem, finde meinen Fehler nicht! AWT, Swing, JavaFX & SWT 11
Seikuassi SWING - (Hoffentlicher) simpler Color-Fehler AWT, Swing, JavaFX & SWT 4
M Swing finde den fehler nicht AWT, Swing, JavaFX & SWT 9
A Fehler bei erstellen eines JTextFields AWT, Swing, JavaFX & SWT 2
D Unlogischer Fehler? AWT, Swing, JavaFX & SWT 2
L Eclipse Fehler besser zu verstehen!!! AWT, Swing, JavaFX & SWT 4
E Warum macht die einfache Animation einen kleinen Fehler? AWT, Swing, JavaFX & SWT 14
bluerob Fehler bei Wertübermittlung über KeyListener AWT, Swing, JavaFX & SWT 3
H GUI-Textausgabe Fehler AWT, Swing, JavaFX & SWT 5
S String is null Fehler AWT, Swing, JavaFX & SWT 2
P Swing GroupLayout() Fehler? AWT, Swing, JavaFX & SWT 3
J JMenuBar ist geaddet, aber nicht im Frame. Wo ist der Fehler? (inkl. Code) AWT, Swing, JavaFX & SWT 2
N Touchscreen-Scrollen, wo liegt der Fehler? AWT, Swing, JavaFX & SWT 3
N Fehler Inhalt von JTable wird gelöscht AWT, Swing, JavaFX & SWT 5
S Fehler beim Zweites 3D Bild AWT, Swing, JavaFX & SWT 2
L Fehler beim erstellen einer Tabelle mithilfe von 2d-Array AWT, Swing, JavaFX & SWT 3
M GEF tutorial Fehler finden AWT, Swing, JavaFX & SWT 4
S Grafik Fehler AWT, Swing, JavaFX & SWT 15
M Fehler bei Arrayübergabe an JComboBox AWT, Swing, JavaFX & SWT 10
J Fehler beim Einklappen eines Trees AWT, Swing, JavaFX & SWT 4
P 2D-Grafik Fehler beim Laden eines Bildes AWT, Swing, JavaFX & SWT 25
S LayoutManager Fehler gesucht 18.6.2011 AWT, Swing, JavaFX & SWT 4
C Fehler nur bei manchen Usern AWT, Swing, JavaFX & SWT 8
Screen Fehler bei Get-Methode für ArrayList AWT, Swing, JavaFX & SWT 8
K JFrame + KeyListener + Runnable = Fehler AWT, Swing, JavaFX & SWT 3
I Fehler bei JFileChooser AWT, Swing, JavaFX & SWT 2
K 2D-Grafik Fehler beim Farbe auslesen AWT, Swing, JavaFX & SWT 3
J Fehler beim Gif Datei öffnen AWT, Swing, JavaFX & SWT 2
J 2D-Grafik Fehler beim Überzeichnen von Linien AWT, Swing, JavaFX & SWT 11
E Swing Fehler nach Befüllen einer JTable mit gesetzem Rowsort?! AWT, Swing, JavaFX & SWT 10
P Swing Misteriöser Fehler JTable AWT, Swing, JavaFX & SWT 5
Y Swing JPasswordField Fehler AWT, Swing, JavaFX & SWT 14
A Swing Unknown Source Fehler AWT, Swing, JavaFX & SWT 9
N Fehler bei Grouplayout AWT, Swing, JavaFX & SWT 17
S ActionPerformed Fehler... AWT, Swing, JavaFX & SWT 9
C BufferedImage-Fehler? Falsches Bild wir gezeichnet AWT, Swing, JavaFX & SWT 5
A Tabellen Überschriften ändern -setColumnIdentifiers()- Fehler AWT, Swing, JavaFX & SWT 7
hdi Swing JTable: Fehler beim Nutzen von RowSorter#setRowFilter AWT, Swing, JavaFX & SWT 4
M.F.G. Fehler bei der Anzeige Grafischer Elemente AWT, Swing, JavaFX & SWT 13
D Swing Verwirrender Fehler AWT, Swing, JavaFX & SWT 7
J Fehler in fillRoundRect AWT, Swing, JavaFX & SWT 2
D Probleme mit Spiel-Engine. Komische Fehler. AWT, Swing, JavaFX & SWT 5
W fehler jedoch ka wo AWT, Swing, JavaFX & SWT 14
F Fehler in der Startklasse AWT, Swing, JavaFX & SWT 13
A Fehler bei der Parametereingabe? AWT, Swing, JavaFX & SWT 16
P finde den Fehler im JTable nicht AWT, Swing, JavaFX & SWT 2
Spin Fehler in Vergleich AWT, Swing, JavaFX & SWT 6
K Swing: ContentPane von JDialog ist transparent (Fehler) AWT, Swing, JavaFX & SWT 10
Dragonfire ZoomImage flackert -> Fehler: repaint-Aufruf [gelöst] AWT, Swing, JavaFX & SWT 5
T Invalid Range - Fehler bei TableRowSorter / Tabelle AWT, Swing, JavaFX & SWT 17
DasDogma Fehler bei getText() AWT, Swing, JavaFX & SWT 10
I Fehler bei verschachtelten JScrollPanes AWT, Swing, JavaFX & SWT 2
M Fehler beim Zugriff von awt-KeyListener auf swt-Shell AWT, Swing, JavaFX & SWT 2
GilbertGrape Fehler bei HTML in JTextPane AWT, Swing, JavaFX & SWT 2
K Textfelder auslesen gibt immer Fehler AWT, Swing, JavaFX & SWT 2
D Fehler bei Button Array AWT, Swing, JavaFX & SWT 8
P Fehler beim Einlesen eines JTextFields AWT, Swing, JavaFX & SWT 2
G Viele Fehler beim zeichen AWT, Swing, JavaFX & SWT 5
M Fehler mit Jigloo AWT, Swing, JavaFX & SWT 3
M setColor mit Fehler cannot fiend symbol (java.awt.Color) AWT, Swing, JavaFX & SWT 2
Z habe code, habe fehler, habe keine lösung AWT, Swing, JavaFX & SWT 7
R JComboBox Fehler AWT, Swing, JavaFX & SWT 7
A Fehler beim Auslesen aus einem Textfeld AWT, Swing, JavaFX & SWT 2
P JRadioButton in Schleife erstellen > wo liegt mein Fehler AWT, Swing, JavaFX & SWT 2
R setIcon löst Fehler aus AWT, Swing, JavaFX & SWT 4
B Durch Auslesen der Zwischenablage folgt Fehler im Excel AWT, Swing, JavaFX & SWT 2
spacegaier Fehler beim Aufrufen von Dialog aus ActionListener AWT, Swing, JavaFX & SWT 12
D Fehler bei JTable AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen


Oben