NullPointerException MenuItem

M

MVCverstehen

Gast
Hallo,

ich habe mit Google dieses Tutorial gefunden und versuche nun die MVC-Struktur auf mein Projekt umzusetzen.
Ich glaub auch alles richtig gemacht zu haben. Trotzdem erhalte ich immer eine NullPointerException, kann sie mir allersings nicht erklären.

Die Ganze Fehlermeldung sieht so aus:

Exception in thread "main" java.lang.NullPointerException
at view.PetrinetzEditorView.setMenuItemNeuListener(PetrinetzEditorView.java:129)
at controller.PetrinetzEditorController.addListener(PetrinetzEditorController.java:28)
at controller.PetrinetzEditorController.<init>(PetrinetzEditorController.java:19)
at PetrinetzEditorTest.main(PetrinetzEditorTest.java:19)

Die 3 Klassen sehen so aus:
PetrinetzEditorTest
Java:
import view.PetrinetzEditorView;
import model.PetrinetzEditorModel;
import controller.PetrinetzEditorController;


public class PetrinetzEditorTest {

	private static PetrinetzEditorModel model;
	private static PetrinetzEditorView view;
	private static PetrinetzEditorController controller;
	
	/**
	 * @param args
	 * Startet die Anwendung
	 */
	public static void main(String[] args) {
		model = new PetrinetzEditorModel();
		view = new PetrinetzEditorView();
		controller = new PetrinetzEditorController(view, model);
		
		view.createAndShowGUI();
		
	}

}

PetrinetzEditorView:
Java:
package view;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;


public class PetrinetzEditorView {

	private String windowTitle = "Petrinetz-Editor";
	
	private JMenuItem menuItemNeu;
	
	public void createAndShowGUI() {
		
		JFrame frame = new JFrame(windowTitle);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		frame.setContentPane(createContentPane());
		
		frame.setJMenuBar(createMenuBar());

		frame.pack();
		frame.setVisible(true);
		
	}


	private JPanel createContentPane() {
		
		// Zeichenfläche innerhalb eines Scroll-Panes
		JScrollPane scrollPaneForDrawingArea = new JScrollPane(createDrawingArea());
				
		// Linkes Element für contentSplitPane
		JTabbedPane tabbedPaneForDrawingArea = new JTabbedPane();
		tabbedPaneForDrawingArea.setTabPlacement(JTabbedPane.BOTTOM);
		
		tabbedPaneForDrawingArea.addTab("Tab1", scrollPaneForDrawingArea);
				
		// Rechtes Element für contentSplitPane
		JPanel rechteFensterSeite = new JPanel();
		rechteFensterSeite.setPreferredSize(new Dimension(150, 600));
		 
		JSplitPane contentSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, tabbedPaneForDrawingArea, rechteFensterSeite);
		
		JPanel contentPane = new JPanel();
		contentPane.add(contentSplitPane);
				
		return contentPane;
	}


	private JPanel createDrawingArea() {
		// Zeichenfläche TabbedPane (linke Bildschirmhälfte)
		JPanel drawingArea = new JPanel();
		drawingArea.setPreferredSize(new Dimension(650, 600));
		drawingArea.setBackground(Color.WHITE);
		return drawingArea;
	}


	private JMenuBar createMenuBar() {
		
		JMenuBar menuBar = new JMenuBar();
		
		JMenu menuDatei = new JMenu("Datei");
		menuBar.add(menuDatei);
		
		// MenuItems für JMenu Datei
		menuItemNeu = new JMenuItem("Neu");
		menuDatei.add(menuItemNeu);		
		
		return menuBar;
	}
	
	public void setMenuItemNeuListener(ActionListener l) {
		menuItemNeu.addActionListener(l);
	}

}

PetrinetzEditorControler:
Java:
package controller;

import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import model.PetrinetzEditorModel;
import view.PetrinetzEditorView;

public class PetrinetzEditorController {

	private PetrinetzEditorView view;
	private PetrinetzEditorModel model;
	
	public PetrinetzEditorController(PetrinetzEditorView view, PetrinetzEditorModel model) {
		this.model = model;
		this.view = view;
		
		addListener();
	}
	
	public void showView() {
		view.createAndShowGUI();
		
	}
	
	private void addListener() {
		view.setMenuItemNeuListener(new MenuItemNeuListener());
	}
	
	private class MenuItemNeuListener implements ActionListener {

		@Override
		public void actionPerformed(ActionEvent e) {
			System.out.println("Menueintrag Datei -> Neu ausgewählt");
		}
		
	}
	
}
 
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
Laut Fehlermeldung tritt der Fehler in PetrinetzEditorView in Zeile 129 auf. Deine Datei hat aber nur 89 Zeilen. Hast du da was rausgekürzt?
Welche Zeile entspricht der Zeile 129?
 
M

Marcinek

Gast
Ich schätze, dass
Code:
menuItemNeu
null ist zum Zeitpunkt, wenn es genutzt wird.

Wird schon im Konstruktor benutzt aber später initialisiert.
 

Plopo

Bekanntes Mitglied
Frage am besten mit einem Syso die Variablen view und model, in der Klasse PetrinetzEditorControler ab.

Ich vermute aber, dass du folgendes auf "static" setzen musst, damit du damit arbeiten kannst.

Java:
private static PetrinetzEditorView view;
private static PetrinetzEditorModel model;
 

ARadauer

Top Contributor
menuItemNeu ist null, du erzezeust die in createMenuBar dass du in createAndShowGUI aufrufst, das machst du in der main als letzes..

Das listener hinzufügen machst du aber im Konstruktor vom controller...

Also du fügst einen listener zu etwas hinzu, dass du erst später erzeugst...
 

ARadauer

Top Contributor
also die Lösung

Java:
        view = new PetrinetzEditorView();
        view.createAndShowGUI();
        controller = new PetrinetzEditorController(view);
gui machen, dann controller übergeben
 
G

Gast2

Gast
Ich vermute aber, dass du folgendes auf "static" setzen musst, damit du damit arbeiten kannst.

Java:
private static PetrinetzEditorView view;
private static PetrinetzEditorModel model;
Nein, bloß nicht. static würde bedeuten dass sich alle Controller die selbe Model und View Instanz teilen, das ist doch nicht sinn der Sache?
 
M

MVCverstehen

Gast
Laut Fehlermeldung tritt der Fehler in PetrinetzEditorView in Zeile 129 auf. Deine Datei hat aber nur 89 Zeilen. Hast du da was rausgekürzt?
Welche Zeile entspricht der Zeile 129?

Ja, stimmt. Habe ein paar überflüssige Kommentare und Code entfernt, der mit der Fehlermeldung nichts zu tun hatte. Habe dann vergessen, die Zeilenangabe anzupassen.
Es wäre dann Zeile Nr. 86

Aber die Lösung des Problems wurde schon durch ARadauer geliefert. Dafür vielen Dank. Manchmal kann es so einfach sein.

Sicherlich ist das auch alles nicht perfekt. Hat vielleicht noch jemand einen Tipp, was man besser machen könnte oder ist das so ok?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zeppi NullPointerException in einer if-Abfrage Allgemeine Java-Themen 6
T imagej-server NullPointerException Allgemeine Java-Themen 1
L Methoden NullpointerException Allgemeine Java-Themen 5
B OOP Auslöser für NullPointerException Allgemeine Java-Themen 3
I Vererbung Nicht erklärliche NullPointerException Allgemeine Java-Themen 7
Drachenbauer warum bekomme ich hier eine NullPointerException Allgemeine Java-Themen 6
I Array Parameter mit 2 Klassen - NullPointerException Allgemeine Java-Themen 3
S Exception in thread "main" java.lang.NullPointerException at FamilienApp.main(FamilienApp.java:15) Allgemeine Java-Themen 1
S Methoden Problem mit NullPointerException Allgemeine Java-Themen 9
F Input/Output NullPointerException, aber wieso? [Apache POI] Allgemeine Java-Themen 11
F Input/Output NullPointerException with Apache POI Allgemeine Java-Themen 7
P wiedermal NullPointerException Allgemeine Java-Themen 2
kodela NullPointerException Allgemeine Java-Themen 2
L Variablen NullPointerException (RSA) Allgemeine Java-Themen 2
B NullPointerException bei @Inject JSF Allgemeine Java-Themen 0
Arif Probleme mit NullPointerException Allgemeine Java-Themen 2
G String an Arduino senden NullPointerException in PrintWriter Allgemeine Java-Themen 6
Z NullPointerException beim Schreiben einer ArrayList in eine Datei Allgemeine Java-Themen 6
R NullPointerException Ohne Grund Allgemeine Java-Themen 5
D ByteBuffer getInt NullpointerException Allgemeine Java-Themen 4
S JavaMail - MailSubject,MailFrom,MailDate in String Array speichern NullPointerException Allgemeine Java-Themen 2
T Compiler-Fehler NullpointerException! Allgemeine Java-Themen 7
A Methode ergibt Java NullpointerException. Allgemeine Java-Themen 3
F Socket NullPointerException Bitte um hilfe! Allgemeine Java-Themen 12
L NullPointerException bei Instanzvarialen Allgemeine Java-Themen 3
B Compiler-Fehler NullPointerException beim Auslesen von .lang-Datei Allgemeine Java-Themen 3
I Fehler java.lang.NullPointerException Allgemeine Java-Themen 5
B NullPointerException - Aber kein Fehler im Code Allgemeine Java-Themen 4
H java.lang.NullPointerException Allgemeine Java-Themen 5
L Interpreter-Fehler java.lang.NullPointerException Allgemeine Java-Themen 17
M JSON NullPointerException Allgemeine Java-Themen 5
M NullpointerException Allgemeine Java-Themen 2
L Eclipse NullPointerException Allgemeine Java-Themen 6
M Fitness-Rechner: NullPointerException Allgemeine Java-Themen 7
G Thread erzeugt nicht plausible NullPointerException Allgemeine Java-Themen 7
A java.lang.NullPointerException bei Schleife Allgemeine Java-Themen 3
K Unerklärliche nullpointerexception Allgemeine Java-Themen 6
C Was bekomme ich eine Nullpointerexception? (Apache POI) Allgemeine Java-Themen 3
S javadoc java.lang.NullPointerException Allgemeine Java-Themen 2
K 3Dimensionales Feld - NullPointerException Allgemeine Java-Themen 2
J Compiler-Fehler NullPointerException Allgemeine Java-Themen 12
T Compiler-Fehler NullPointerException bei ADT LinkedTree Allgemeine Java-Themen 31
P Beim sortieren nullpointerexception Allgemeine Java-Themen 12
3 MP3-Finder wirft NullPointerException Allgemeine Java-Themen 13
S Dialog einblenden bei NullPointerException Allgemeine Java-Themen 5
T DefaultTableModel NullPointerException Allgemeine Java-Themen 7
ruutaiokwu NullPointerException auf member, die per konstruktor gesetzt wird (multithread-kontext) Allgemeine Java-Themen 2
B NullPointerException ohne Angabe Allgemeine Java-Themen 5
F NullPointerException aber warum ? Allgemeine Java-Themen 9
F Array NullPointerException Allgemeine Java-Themen 26
B NullPointerException bei Wertzuweisung Allgemeine Java-Themen 3
C NullPointerException Allgemeine Java-Themen 9
MonsterBit java.lang.NullPointerException Allgemeine Java-Themen 2
O NullPointerException (wohl Denkfehler) Allgemeine Java-Themen 5
N Warum nullPointerException? Allgemeine Java-Themen 13
N Generics-NullpointerException Allgemeine Java-Themen 7
J NullPointerException mit HashMap Allgemeine Java-Themen 2
B NullPointerException bei new XStream() Allgemeine Java-Themen 2
J java.lang.NullPointerException bei Threadprogrammierung Allgemeine Java-Themen 9
J NullPointerException bei JasperReports Allgemeine Java-Themen 2
V NullPointerException bei Vector Allgemeine Java-Themen 2
G Warum kommt hier NullPointerException? Allgemeine Java-Themen 3
G NullPointerException Allgemeine Java-Themen 5
R Immer wieder NullPointerException Allgemeine Java-Themen 2
M NullPointerException Allgemeine Java-Themen 4
J Fehler: java.lang.NullPointerException Allgemeine Java-Themen 2
G NullPointerException, aber warum? Allgemeine Java-Themen 10
G NullPointerException problem Allgemeine Java-Themen 30
mhauert NullPointerException bei Zugriff auf JNI Objekt Allgemeine Java-Themen 6
J Folgender Fehler: java.lang.NullPointerException Allgemeine Java-Themen 4
T NullPointerException nach Java Update Allgemeine Java-Themen 4
G NullPointerException Allgemeine Java-Themen 6
H NullPointerException trotz Abfangen von null? Allgemeine Java-Themen 9
H nullPointerException bei [ArrayList<String>.add(.)] Allgemeine Java-Themen 3
H NullPointerException Allgemeine Java-Themen 10
P NullPointerException Allgemeine Java-Themen 8
A NullPointerException, Thread soll Thread steuern Allgemeine Java-Themen 2
MQue Sichtbarkeit/HashMap/NullPointerexception Allgemeine Java-Themen 2
MQue NullPointerException Allgemeine Java-Themen 17
A NullPointerException Allgemeine Java-Themen 15
G java.lang.NullPointerException JFreeChart Allgemeine Java-Themen 5
A NullPointerException Allgemeine Java-Themen 11
G Methode mit Schleifen NullPointerException Allgemeine Java-Themen 2
B Pobleme mit NullpointerException Allgemeine Java-Themen 13
M java.lang.NullPointerException im Chatclient Allgemeine Java-Themen 12
S NullPointerException beim Laden von BMPs Allgemeine Java-Themen 3
B java.lang.NullPointerException Allgemeine Java-Themen 11
M NullPointerException bei Subklasse ohne MediaTracker Allgemeine Java-Themen 12
G Problem mit NullPointerException Allgemeine Java-Themen 5
D NullPointerException wo keine sein sollte. Allgemeine Java-Themen 2
F NullpointerException beim Einlesen einer Datei Allgemeine Java-Themen 13
V Button schließen - NullPointerException Allgemeine Java-Themen 6
V NullPointerException Allgemeine Java-Themen 12

Ähnliche Java Themen

Neue Themen


Oben