Klassen NullPointerException beim Event Handling in GUI

chaparral2j

Mitglied
Hi,
ich bin neu im Forum, weshalb ich mich kurz vorstelle: Ich habe neben meinem Job damit begonnen, Java zu lernen. Nach einigen Tutorials arbeite ich an meinem ersten Projekt.
Entwicklungsumgebung: Eclipse 3.3.2
Betriebssystem Win XP
SDK jdk1.6.0_01

Projekt
Ich verwende drei Klassen: Resource, Gui, b2b, in letzterer befindet sich die main() Methode. Für das Event Handling besitzt die Klasse Gui eine innere Klasse HandlerClass.
Beim Starten wird im Gui eine Instanz der Klasse Resource erzeugt, deren Felder abhängig der Eingaben in der Gui geändert werden sollen, wenn ein Button "Save-holtitel" geklickt wird.
Java:
import java.awt.*;
import java.awt.event.*;
import java.awt.Insets;
import javax.swing.*;
import javax.swing.event.*;
import java.util.Date;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;

public class Gui extends JFrame{
    
    private JTextField title;
    private JTextArea description;
    private JTextField keywords;
    private JTextField creator;
    private JComboBox typeBox;
    private JList domain;
    private JButton savebutton;
    private JButton appendbutton;
    private JButton exitbutton;
    private JLabel Title;
    private JLabel Description;
    private JLabel TheDate;
    private JLabel TheType;
    private JLabel Creator;
    private JLabel Type;
    private JLabel Subjects;
    private JLabel Format;
    private Color colr;
    private String date;
    private String[] types;
    public Resource res;

    
    public Gui(){
	
	super("brain2brain");
	setLayout(new GridBagLayout());
	GridBagConstraints c = new GridBagConstraints();
	c.anchor = GridBagConstraints.FIRST_LINE_START;
	c.insets = new Insets(10,10,10,10);
	//colr = new Color(20,150,250,100);
	colr = new Color(255,255,255,255);
	getContentPane().setBackground(colr);
	
	// MenuBar
	JMenuBar menuBar = new JMenuBar();
	JMenu menu1 = new JMenu("first one");
	menuBar.add(menu1);
	
	JMenuItem menuItem1 = new JMenuItem("1st item");
	menu1.add(menuItem1);
	
	JMenuItem menuItem2 = new JMenuItem("2nd item");
	menu1.add(menuItem2);
	
	JMenu menu2 = new JMenu("second one");
	menuBar.add(menu2);
	
	JMenuItem menuItem3 = new JMenuItem("1st item, 2nd menu");
	menu2.add(menuItem3);
	
	this.setJMenuBar(menuBar);
	
	// GUI Elements
	
	TheDate = new JLabel("Date");
	c.gridx = 0;
	c.gridy = 0;
	add(TheDate,c);
	
	Date stamp = new Date();
	date = stamp.toString();
	TheDate = new JLabel(date);
	c.gridx = 1;
	c.gridy = 0;
	add(TheDate,c);
	
	TheType = new JLabel("Type");
	c.gridx = 0;
	c.gridy = 1;
	add(TheType,c);
	
	String[] types = {"Idea", "Problem", "Resource"};
	typeBox = new JComboBox(types);
	typeBox.setSelectedIndex(1);
	c.gridx = 1;
	c.gridy = 1;
	add(typeBox,c);
	
	Creator = new JLabel("Creator");
	c.gridx = 0;
	c.gridy = 4;
	add(Creator,c);
	creator = new JTextField(20);
	c.gridx = 1;
	c.gridy = 4;
	add(creator,c);
	
	Title = new JLabel("Title");
	c.gridx = 0;
	c.gridy = 2;
	add(Title,c);
	title = new JTextField(20);
	c.gridx = 1;
	c.gridy = 2;
	add(title,c);
	
	Description = new JLabel("Description");
	description = new JTextArea("Please put your description here",5,20);
	JScrollPane scrollPane = new JScrollPane(description);
	c.gridx = 0;
	c.gridy = 3;
	add(Description,c);
	c.gridx = 1;
	c.gridy = 3;
	add(scrollPane,c);
	
	appendbutton = new JButton("Append");
	c.gridx = 0;
	c.gridy = 5;
	add(appendbutton,c);
	
	savebutton = new JButton("Save - holtitel");
	c.gridx = 1;
	c.gridy = 5;
	add(savebutton,c);
	
	exitbutton = new JButton("Exit");
	c.gridx = 2;
	c.gridy = 5;
	add(exitbutton,c);

	
	// Action Listener für die GUI-Elemente
	HandlerClass handler = new HandlerClass();
	title.addActionListener(handler);
	typeBox.addItemListener(handler);
	savebutton.addActionListener(handler);
	appendbutton.addActionListener(handler);
	exitbutton.addActionListener(handler);

	Resource res = new Resource("initial_title", "initial_description", "initial_type", "initial_keyword", "initial_domain");
    }

    public class HandlerClass implements ActionListener, ItemListener{
	public void actionPerformed(ActionEvent evt){
	    System.out.println(date);
	    String typeName = (String)typeBox.getSelectedItem();
	    String titletext = title.getText();
	    String desctext = description.getText();
	    String creatext = creator.getText();
	      if(evt.getSource() == savebutton){
		  //Resource res = new Resource("initial_title", "initial_description", "initial_type", "initial_keyword", "initial_domain");
		    System.out.println(res);
	            String titext = title.getText();
		    res.setDescription(titletext);
		    String restitle = res.getTitle();
		    System.out.println("restitle " + restitle);
		    System.out.println("type " + typeName);
	        }
	      else if (evt.getSource() == appendbutton){
		  System.out.println("Append Button geklickt");
	      }
	      else if (evt.getSource() == exitbutton){
		  System.out.println("Exit Button geklickt");
	      }

	}
	public void itemStateChanged(ItemEvent ievt){
	    System.out.println(ItemEvent.SELECTED);
	    
	}
    }
}

Problem
Klick auf den Button liefert eine NullPointerException.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
null
at Gui$HandlerClass.actionPerformed(Gui.java:193)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Lösungsversuch
Instantiieren des Resourcenobjekts innerhalb der Handlerklasse funktioniert ohne Exception, allerdings will ich nicht jedes Mal ein neues Objekt erzeugen, sondern _eine_ Instanz bearbeiten ;-)

Ich würde mich über freuen, wenn mir ein Forist meinen Fehler und die Lösung sagt. :)
 

VfL_Freak

Top Contributor
Moin,

wie die Meldung schon besagt, tritt der Fehler in "Gui.java - Zeile 193" auf.
Welche das genau ist, ist Deinem Post leider nicht zu entnehmen.

Erster Kandidat wäre dann wohl "date" in Deiner Zeile 149.
Starte einfach dort das debuggen, dann wirst Du schnell sehen, was konkret NULL ist !

Gruß
Klaus
 

HimBromBeere

Top Contributor
Entweder du schreibst die Codenummern bei deinen JAVA-Tags dazu (dazu folgende Syntax verwenden: [JAVA=5] oder welche Anfangszeilennummer auch immer du brauchst), oder du setzt einfach ein paar Haltepunkte oder sysouts, um herauszufinden, was noch geht und was nicht mehr.
 

njans

Top Contributor
Moin,

wie die Meldung schon besagt, tritt der Fehler in "Gui.java - Zeile 193" auf.
Welche das genau ist, ist Deinem Post leider nicht zu entnehmen.

Erster Kandidat wäre dann wohl "date" in Deiner Zeile 149.
Starte einfach dort das debuggen, dann wirst Du schnell sehen, was konkret NULL ist !

Gruß
Klaus

Nun System.out.println(null) wirft keine NPE. Allerdings eines der darauf folgenden Aufrufe tut das.
 

Kevin94

Top Contributor
res ist null, da du der Instanzvariablen keinen Wert zuweist,sondern in der letzten Zeile deines Konstruktors eine neue lokale Variable res erstellst.
 

chaparral2j

Mitglied
Moin, vielen Dank für eure schnellen Antworten!

wie die Meldung schon besagt, tritt der Fehler in "Gui.java - Zeile 193" auf.
Welche das genau ist, ist Deinem Post leider nicht zu entnehmen.

Sorry, mein Fehler. Ich hatte nach dem Reproduzieren der Exception noch editiert.
Streiche 193, setze 170.

@ Kevin94: Nachdem ich das Programm entsprechend geändert habe - Wert bei der Variablendeklaration zuweisen - tut's ohne Exception. Danke für den Hinweis.
 
Zuletzt bearbeitet:

vimar

Bekanntes Mitglied
also ohne jetzt hier nen streit anfangen zu wollen, nimm anstatt eclipse einfach "netbeans" - da kannste die gui leichter zusammenklicken und für eigene buttons z.b. nicht actionlistener schreiben sondern kannst alles windows-like aktivieren. find ich besser.

Netbeans Java GUI Builder Tutorial - YouTube

hier das video da siehste mal wie einfach das ist - subjektive meinung: in eclipse so schnell ne gui zu machen halte ich für sehr schwierig. oder ich hab da kein talent für.
 
Zuletzt bearbeitet:

chaparral2j

Mitglied
NetBeans hatte ich vor 'nem Jahr ausprobiert, dabei über das WYSIWYG-Prinzip gestolpert. Am Anfang hat mir das ganz gut gefallen, bis ich irgendwann das Bedürfnis hatte, etwas im Code nachzuschauen...
WYSIWYG ist nicht so mein Ding. ;-)
Trotzdem Danke für den Tipp.
 

Fab1

Top Contributor
also ohne jetzt hier nen streit anfangen zu wollen, nimm anstatt eclipse einfach "netbeans" - da kannste die gui leichter zusammenklicken und für eigene buttons z.b. nicht actionlistener schreiben sondern kannst alles windows-like aktivieren. find ich besser.

Netbeans Java GUI Builder Tutorial - YouTube

hier das video da siehste mal wie einfach das ist - subjektive meinung: in eclipse so schnell ne gui zu machen halte ich für sehr schwierig. oder ich hab da kein talent für.

Es gibt für Eclipse schon das ein oder andere Plugin, mit welchem sich das genau so schnell realisieren lässt. Aber letzten Endes ist es eh besser, wenn man sich am Anfang ausreichend mit dem Mysterien der Layoutmanager befasst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
Avalon NullPointerException beim Mocken Java Basics - Anfänger-Themen 6
J NullPointerException beim Klonnen eines Arayys und beim aufrufen einer Methode Java Basics - Anfänger-Themen 2
dapzoo Compiler-Fehler Beim Werte verteilen in Objektarray NullPointerException Java Basics - Anfänger-Themen 4
S Input/Output nullpointerException beim schliessen von stream Java Basics - Anfänger-Themen 3
N NullPointerException beim Addieren von Matrizen Java Basics - Anfänger-Themen 3
S NullPointerException beim Checkbox-Label-Array mit nextLine() Java Basics - Anfänger-Themen 6
R NullPointerException beim Klick auf Button Java Basics - Anfänger-Themen 3
G java.lang.NullPointerException beim objekt Java Basics - Anfänger-Themen 3
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7
C Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 10
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
berserkerdq2 Nullpointerexception, obwohl ich Array initialisiere? Java Basics - Anfänger-Themen 1
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
missy72 Klassen Objekt Array NullPointerException Java Basics - Anfänger-Themen 3
Jose05 Nullpointerexception Java Basics - Anfänger-Themen 7
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
H Java NullPointerException Java Basics - Anfänger-Themen 4
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
L Threads Komischer NullPointerException Java Basics - Anfänger-Themen 2
H Fehler: NullPointerException und ich weiß net warum Java Basics - Anfänger-Themen 4
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
D NullPointerException in foreach loop Java Basics - Anfänger-Themen 1
D java.lang.NullPointerException Java Basics - Anfänger-Themen 19
T Bufferedwriter code Nullpointerexception Java Basics - Anfänger-Themen 4
D NullPointerException im Array Java Basics - Anfänger-Themen 4
X java.lang.NullPointerException fehler ? Java Basics - Anfänger-Themen 1
B java.lang.NullPointerException bei javafx Java Basics - Anfänger-Themen 10
V NullPointerException Java Basics - Anfänger-Themen 2
S NullPointerException während ResultSet Java Basics - Anfänger-Themen 7
V NullPointerException, wenn Key und Value null sind Java Basics - Anfänger-Themen 2
scratchy1 NullPointerException Java Basics - Anfänger-Themen 19
U Was löst meine NullPointerException aus? (Vererbung) Java Basics - Anfänger-Themen 12
F Wie kann ich diese NullPointerException umgehen?! Java Basics - Anfänger-Themen 41
W Optional<T> - NullPointerException Java Basics - Anfänger-Themen 37
Jascha NullPointerException vs NumberFormatException Java Basics - Anfänger-Themen 5
L Variablen NullPointerException bei Dateigröße (Nr.1) Java Basics - Anfänger-Themen 4
M Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 13
D NullPointerException umgehen Java Basics - Anfänger-Themen 17
Z Objekt Array führt zum NullPointerException Java Basics - Anfänger-Themen 2
W NullPointerException obwohl nicht null? Java Basics - Anfänger-Themen 3
W ArrayList NullPointerException Java Basics - Anfänger-Themen 4
A NullPointerException Java Basics - Anfänger-Themen 6
S NullPointerException Java Basics - Anfänger-Themen 4
T OOP Wörterbuch NullPointerException Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
O NullPointerException Java Basics - Anfänger-Themen 2
M Interpreter-Fehler Feld NullPointerException Java Basics - Anfänger-Themen 4
L Variablen Unerklärliche NullPointerException Java Basics - Anfänger-Themen 2
E Compiler-Fehler nullPointerException in verschachteltem Modell Java Basics - Anfänger-Themen 6
DaCrazyJavaExpert Threads NullPointerException Java Basics - Anfänger-Themen 8
DaCrazyJavaExpert Compiler-Fehler Variable nicht mit null initialisiert, trotzdem: NullPointerException Java Basics - Anfänger-Themen 28
kodela NullPointerException Java Basics - Anfänger-Themen 12
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
H java.lang.NullPointerException Java Basics - Anfänger-Themen 4
H NullPointerException obwohl Objekt angelegt wurde Java Basics - Anfänger-Themen 1
A Threads Reentrantlock | NullpointerException möglicher Deadlock? Java Basics - Anfänger-Themen 0
K Compiler-Fehler NullPointerException lösen Java Basics - Anfänger-Themen 16
G java.lang.NullPointerException Java Basics - Anfänger-Themen 3
P Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 1
E Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 2
S Methoden Methode funktioniert nicht | NullPointerException Java Basics - Anfänger-Themen 6
F NullpointerException bei zweidimensionalem Array Java Basics - Anfänger-Themen 2
Z OOP - Array ständig NullPointerException Java Basics - Anfänger-Themen 4
J Verstehe die NullPointerException nicht Java Basics - Anfänger-Themen 1
T Nullpointerexception und es wird nichts angezeigt Java Basics - Anfänger-Themen 15
H NullPointerException, aber wieso? Java Basics - Anfänger-Themen 5
B ProcessMessage NullPointerException Java Basics - Anfänger-Themen 11
shiroX Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 9
MrSnake ItemListener mit NullPointerException Java Basics - Anfänger-Themen 3
J java.lang.NullPointerException in meiner JavaFXControllerKlasse Java Basics - Anfänger-Themen 26
M NullPointerException Java Basics - Anfänger-Themen 8
B Vererbung NullPointerException Java Basics - Anfänger-Themen 38
D Communications link failure | java.lang.NullPointerException Java Basics - Anfänger-Themen 3
G NullPointerException Java Basics - Anfänger-Themen 1
J NullpointerException Java Basics - Anfänger-Themen 1
M Interpreter-Fehler Nullpointerexception trotz Ordentlicher Initialisierung Java Basics - Anfänger-Themen 4
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
M String-Vergleich und NullPointerException Java Basics - Anfänger-Themen 4
D Java Fehler: NullPointerException Java Basics - Anfänger-Themen 1
M Vergleich zweier Array Stellen mit equals/NullpointerException Java Basics - Anfänger-Themen 9
X Problem mit NullPointerException Java Basics - Anfänger-Themen 2
K NullPointerException in der Hashtable Java Basics - Anfänger-Themen 4
S Interpreter-Fehler Hilfestellung bei einer NullPointerException Java Basics - Anfänger-Themen 1
S GraphNode --- Dijkstra Algorithmus : NullPointerException Java Basics - Anfänger-Themen 1
L NullPointerException Java Basics - Anfänger-Themen 11
M Nullpointerexception??? Java Basics - Anfänger-Themen 2
W NullPointerException bei DefaultListModel Java Basics - Anfänger-Themen 5
N NullPointerException bei Konsolenausgabe Java Basics - Anfänger-Themen 5
J Klasse in Klasse; NullPointerException Java Basics - Anfänger-Themen 8
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
Q NullPointerException Java Basics - Anfänger-Themen 5
H NullPointerException Java Basics - Anfänger-Themen 5
T Threads MultiThreading NullPointerException Java Basics - Anfänger-Themen 7
K NullPointerException wird geworfen, bitte um Hilfe! Java Basics - Anfänger-Themen 7
O Objekt weitergeben Meth Class NullPointerException Java Basics - Anfänger-Themen 2
J Char-Array - NullPointerException Java Basics - Anfänger-Themen 3
M Compiler-Fehler Java suckt - java.lang.NullPointerException Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben