Fehlermeldung: java.lang.NullPointerException

Status
Nicht offen für weitere Antworten.

Swinnie17

Mitglied
Hi, bin ganz neu in Java, need help!

Mein Quellcode:

[Java]currentPost.edit()
import java.awt.*;
import java.awt.event.*;

/**
*
* Beschreibung
*
* @version 1.0 vom 16.10.2009
* @author
*/

public class GUIBurchrechner extends Frame {
// Anfang Attribute
private TextField textZaehler1 = new TextField();
private TextField textField1 = new TextField();
private TextField textZaehler2 = new TextField();
private TextField textNenner2 = new TextField();
private Button multiplizieren = new Button();
private Button addieren = new Button();
private Button subtrahieren = new Button();
private Button dividieren = new Button();
private Label Bruch1 = new Label();
private Label labelBruch2 = new Label();
private TextField textErg1 = new TextField();
private TextField textErg2 = new TextField();
private Label labelErgebnis = new Label();
private Bruchrechner Rechner = new Bruchrechner();
private Bruch B1, B2, BErg;
// Ende Attribute

public GUIBurchrechner(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { System.exit(0); }
});
int frameWidth = 284;
int frameHeight = 276;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
Panel cp = new Panel(null);
add(cp);
// Anfang Komponenten

textZaehler1.setBounds(48, 48, 25, 24);
textZaehler1.setText("");
cp.add(textZaehler1);
textField1.setBounds(48, 80, 25, 24);
textField1.setText("");
cp.add(textField1);
textZaehler2.setBounds(104, 48, 25, 24);
textZaehler2.setText("");
cp.add(textZaehler2);
textNenner2.setBounds(104, 80, 25, 24);
textNenner2.setText("");
cp.add(textNenner2);
multiplizieren.setBounds(24, 152, 97, 25);
multiplizieren.setLabel("multiplizieren");
multiplizieren.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
multiplizieren_ActionPerformed(evt);
}
});
cp.add(multiplizieren);
addieren.setBounds(24, 192, 97, 25);
addieren.setLabel("addieren");
addieren.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
addieren_ActionPerformed(evt);
}
});
cp.add(addieren);
subtrahieren.setBounds(144, 152, 89, 25);
subtrahieren.setLabel("subtrahieren");
subtrahieren.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
subtrahieren_ActionPerformed(evt);
}
});
cp.add(subtrahieren);
dividieren.setBounds(144, 192, 89, 25);
dividieren.setLabel("dividieren");
dividieren.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
dividieren_ActionPerformed(evt);
}
});
cp.add(dividieren);
Bruch1.setBounds(40, 24, 44, 16);
Bruch1.setText("Bruch 1");
Bruch1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(Bruch1);
labelBruch2.setBounds(96, 24, 52, 16);
labelBruch2.setText("Bruch 2");
labelBruch2.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(labelBruch2);
textErg1.setBounds(200, 48, 25, 24);
textErg1.setText("");
cp.add(textErg1);
textErg2.setBounds(200, 80, 25, 24);
textErg2.setText("");
cp.add(textErg2);
labelErgebnis.setBounds(184, 24, 54, 16);
labelErgebnis.setText("Ergebnis");
labelErgebnis.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(labelErgebnis);
// Ende Komponenten

setResizable(false);
setVisible(true);
}

// Anfang Methoden
public void multiplizieren_ActionPerformed(ActionEvent evt) {
B1.setBruch(textZaehler1.getText(),textField1.getText());
B2.setBruch(textZaehler2.getText(),textNenner2.getText());
Rechner.Multiplikation(B1,B2);
BErg=new Bruch();
BErg=Rechner.getBruch();
textErg1.setText(""+BErg.Z);
textErg2.setText(""+BErg.N);
}

public void addieren_ActionPerformed(ActionEvent evt) {
B1.setBruch(textZaehler1.getText(),textField1.getText());
B2.setBruch(textZaehler2.getText(),textNenner2.getText());
Rechner.Addition(B1,B2);
BErg=Rechner.getBruch();
textErg1.setText(""+BErg.Z);
textErg2.setText(""+BErg.N);
}

public void subtrahieren_ActionPerformed(ActionEvent evt) {
B1.setBruch(textZaehler1.getText(),textField1.getText());
B2.setBruch(textZaehler2.getText(),textNenner2.getText());
Rechner.Subtraktion(B1,B2);
BErg=Rechner.getBruch();
textErg1.setText(""+BErg.Z);
textErg2.setText(""+BErg.N);
}

public void dividieren_ActionPerformed(ActionEvent evt) {
B1.setBruch(textZaehler1.getText(),textField1.getText());
B2.setBruch(textZaehler2.getText(),textNenner2.getText());
Rechner.Division(B1,B2);
BErg=Rechner.getBruch();
textErg1.setText(""+BErg.Z);
textErg2.setText(""+BErg.N);
}

// Ende Methoden

public static void main(String[] args) {
new GUIBurchrechner("GUIBurchrechner");
}
}
[/Java]


Ich erhalte folgende Fehlermeldung:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at GUIBurchrechner.addieren_ActionPerformed(GUIBurchrechner.java:127)
at GUIBurchrechner$3.actionPerformed(GUIBurchrechner.java:72)
at java.awt.Button.processActionEvent(Button.java:392)
at java.awt.Button.processEvent(Button.java:360)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

:shock:

Was will mir diese Fehlermeldung sagen?
 
Zuletzt bearbeitet von einem Moderator:

HoaX

Top Contributor
Dass du auf eine Variable zugreifst die null ist, also kein Objekt da ist. Und das ganze in der Zeile 127.

-> B1, B2 und BErg tust du nirgends initialisieren.
 

HoaX

Top Contributor
Klar mit nem Editor, womit sonst? ABer das ist doch egal.

Du solltest eigentlichtlich wissen was null bedeutet und wie Variablen und Objekte funktionieren -> Grundlagen.
Tutorials gibts genug im Internet. Ein Hinweis hab ich oben noch in meinen ersten Post reineditiert: B1, B2 und BErg sind null da du ihnen nie einen anderen Wert zuweist.
 

Swinnie17

Mitglied
Ich definiere die Werte in einer separaten Datei:

[Java]
import java.util.*;

public class Bruch {

// Anfang Attribute
public int N;
public int Z;
// Ende Attribute



// Anfang Methoden
public void setBruch(String Zaehler, String Nenner) {
Z = Integer.parseInt(Zaehler);
N = Integer.parseInt(Nenner);
}
public void setBruch(int Zaehler, int Nenner) {
Z = (Zaehler);
N = (Nenner);
}
// Ende Methoden
}
[/Java] :autsch:
 

Swinnie17

Mitglied
Der Rechner ist auch eine separate Datei:

[Java]
import java.util.*;

public class Bruchrechner {


// Anfang Attribute
private Bruch BErg = new Bruch();
// Ende Attribute


/********* Addition (public) *******************************************/

// Anfang Methoden
public void Addition(Bruch B1, Bruch B2){
BErg.setBruch(B1.Z*B2.N+B2.Z*B1.N,B1.N*B2.N);
}

public void Subtraktion(Bruch B1, Bruch B2){
BErg.setBruch(B1.Z*B2.N-B2.Z*B1.N,B1.N*B2.N);
}

public void Division(Bruch B1, Bruch B2){
BErg.setBruch(B1.Z*B2.N,B1.N*B2.Z);
}

public void Multiplikation(Bruch B1, Bruch B2){
BErg.setBruch(B1.Z*B2.Z,B1.N*B2.N);
}

public Bruch getBruch(){
return BErg;
}
private Bruch kuerzen(Bruch B){
int g = ggt(B);
B.Z = (int) (B.Z / g);
B.N = (int) (B.N / g);
return B;
}
private int ggt(Bruch B) {
int r=1;
int a = B.Z;
int b = B.N;
while ( r!=0 ) {
r = a % b;
a = b;
b = r;
}
return a;
}
// Ende Methoden
}


[/Java]
 

HoaX

Top Contributor
Und? Deshalb wird trotzdem nirgendwo B1, B2, oder BErg ein Wert (Object) zugewiesen. Die sind null. Darum schepperts dann wenn du B1.setBruch aufrufst.
 

icarus2

Top Contributor
Du musst B1 mit dem 'new'-Operator erzeugen. Sonst ist das Objekt 'null'. ('null' ist nicht das gleiche wie 0. 'null' kommt aus dem englischen und bedeutet so viel wie 'leer').

z.B.
[Java]
Bruch B1 = new Bruch();
[/code]

Unbedingt die Theorie dazu anschauen. Das ist etwas von den wichtigsten Grundlagen bei OOP.

PS:
Variablen und Objekte schreibt man im 'camelCase'. (der Anfang ist klein)

*Edit:
Und bei den anderen Objekten, die auch 'null' sind, natürlich auch wie bei B1 mit new erzeugen.
 

Swinnie17

Mitglied
@icarus2
Vielen Dank, wenigstens einer der sich herablässt meine "blöde Frage" zu beantworten.

Ich lerne Java in der Schule, kann auch nix dafür wenn der Unterricht da schlecht aufgebaut ist. Und den Fehler in dem Code hat nicht mal mein Lehrer gefunden ...
 

icarus2

Top Contributor
Ich hab vor einem Jahr genauso angefangen ;-)

Habe mich einfach in der Frezeit intensiv damit beschäftigt und jetzt bin ich am 2D-Spiele programmieren. Das wird schon wenn man sich ranhält =)
 
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
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
K Fehlermeldung: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 Java Basics - Anfänger-Themen 4
T Fehlermeldung: java.lang.NoClassDefFoundError Java Basics - Anfänger-Themen 10
B Fehlermeldung - Exception in thread "main" java.lang.Error: Unresolved compilation pr Java Basics - Anfänger-Themen 16
Z Fehlermeldung: Exception. java.lang.String Java Basics - Anfänger-Themen 7
G Fehlermeldung "java.lang.NoSuchMethodError: main" Java Basics - Anfänger-Themen 3
O 1. Fehlermeldung! (java.lang.NoClassDefFound) Java Basics - Anfänger-Themen 16
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
M Java heap space Fehlermeldung beheben Java Basics - Anfänger-Themen 3
I Fehlermeldung: Java does not contain a main type Java Basics - Anfänger-Themen 1
D Fehlermeldung beim Ausführen eines Java Programms Java Basics - Anfänger-Themen 4
G Fehlermeldung: A fatal error has been detected by the Java Runtime Environment Java Basics - Anfänger-Themen 7
Gugelhupf JDK installieren Fehlermeldung 1336 - Java SDK 7 Update 5 x64 Java Basics - Anfänger-Themen 4
B Java-Basics --> Fehlermeldung nicht verständlich! Java Basics - Anfänger-Themen 8
L Fehlermeldung: RealMirror.java cannot find symbol Java Basics - Anfänger-Themen 2
M Fehlermeldung java.io.FileNotFoundException Java Basics - Anfänger-Themen 2
P Fehlermeldung bei Konstruktoraufruf (Java) Java Basics - Anfänger-Themen 5
0 Fehlermeldung: SteuerungsPanel$ButtonHandler.actionPerformed(Steu erungsPanel.java: Java Basics - Anfänger-Themen 2
S Java Fehlermeldung: IllegalAccessException Java Basics - Anfänger-Themen 2
A Java Fehlermeldung Java Basics - Anfänger-Themen 3
G Java Fehlermeldung ABC Java Basics - Anfänger-Themen 7
A Fehlermeldung: Exception in thread "main" java.lan Java Basics - Anfänger-Themen 3
G Fehlermeldung - java.io.IOException: Das Handle ist ungültig Java Basics - Anfänger-Themen 3
F Bei Aufruf von java.exe -> Fehlermeldung Java Basics - Anfänger-Themen 11
S Fehlermeldung Cant convert java.awt.TextField to int Java Basics - Anfänger-Themen 12
M Fehlermeldung unreported exception java.io.IOException. Java Basics - Anfänger-Themen 2
M Java Fehlermeldung Java Basics - Anfänger-Themen 6
E fehlermeldung "java heap space" Java Basics - Anfänger-Themen 21
Ronny123 Erste Schritte Fehlermeldung Java Basics - Anfänger-Themen 1
F Fehlermeldung in Eclipse Java Basics - Anfänger-Themen 13
AllBlack Fehlermeldung Java Basics - Anfänger-Themen 19
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
J Fehlermeldung unverständlich für Jakarta Java Basics - Anfänger-Themen 17
Ostkreuz Fehlermeldung Java Basics - Anfänger-Themen 1
_so_far_away_ Fehlermeldung "Index 2 out of bounds for length 2" Java Basics - Anfänger-Themen 7
W Texteingabe - Bedeutung Fehlermeldung, Lösung? Java Basics - Anfänger-Themen 18
krgewb Fehlermeldung in web.xml Java Basics - Anfänger-Themen 4
W Warum diese Fehlermeldung? Java Basics - Anfänger-Themen 12
nbergmann Unverständliche Fehlermeldung Java Basics - Anfänger-Themen 56
E fehlermeldung bei richtigen login daten Java Basics - Anfänger-Themen 7
J Fehlermeldung im Checkstyle Java Basics - Anfänger-Themen 11
S Fehlermeldung Java Basics - Anfänger-Themen 7
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
EchtKeineAhnungManchmal Hallo :) ich bekomme es nicht hin eine Fehlermeldung auszugeben über die GUI Java Basics - Anfänger-Themen 3
C Fehlermeldung Array zuweisen und printen Java Basics - Anfänger-Themen 22
J Fehlermeldung Java Basics - Anfänger-Themen 22
J Fehlermeldung: A JNI error Java Basics - Anfänger-Themen 3
R Fehlermeldung aber WO liegt der Fehler? Java Basics - Anfänger-Themen 7
JavaClara Fehlermeldung bei split-Methode Java Basics - Anfänger-Themen 12
C Fehlermeldung InOut. Java Basics - Anfänger-Themen 7
B Methoden if-statement error, FX, Fehlermeldung Java Basics - Anfänger-Themen 6
A Fehlermeldung Java Basics - Anfänger-Themen 5
H Comparator Fehlermeldung Java Basics - Anfänger-Themen 5
D Folgende Fehlermeldung bei der Installation von JAVAFX Java Basics - Anfänger-Themen 1
J Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context Java Basics - Anfänger-Themen 4
T Fehlermeldung beim Versuch, einen String einzulesen Java Basics - Anfänger-Themen 4
S Bitte Hilfe zu Fehlermeldung am Handy Java Basics - Anfänger-Themen 2
H fehlermeldung Java Basics - Anfänger-Themen 447
H fehlermeldung Java Basics - Anfänger-Themen 9
T Fehlermeldung beim Starten von FlashTool Java Basics - Anfänger-Themen 27
C Fehlermeldung mit Intger. Java Basics - Anfänger-Themen 3
A Fehlermeldung Java Basics - Anfänger-Themen 3
D Wie kann man eine solche Fehlermeldung abfangen Java Basics - Anfänger-Themen 4
H Fehlermeldung bei der Ausführung eines Compilierten PRGs Java Basics - Anfänger-Themen 9
N Fehlermeldung beim ausführen des Programmes.. Java Basics - Anfänger-Themen 3
x-tshainge Fehlermeldung Java Basics - Anfänger-Themen 2
M Erste Schritte NetBeans Fehlermeldung Java Basics - Anfänger-Themen 2
D Fehlermeldung obwohl Variablen bereits deklariert sind? Java Basics - Anfänger-Themen 14
N Fehlermeldung bei Methode Java Basics - Anfänger-Themen 12
I String index out of range Fehlermeldung Java Basics - Anfänger-Themen 4
I Fehlermeldung bei Darstellung von Arrays Java Basics - Anfänger-Themen 2
S Variablen JLabel backImagePanel Fehlermeldung Java Basics - Anfänger-Themen 3
A checkstyle Fehlermeldung Java Basics - Anfänger-Themen 1
G Compiler-Fehler Fehlermeldung Java Basics - Anfänger-Themen 3
Pr0m3theus Fehlermeldung ArrayList add Java Basics - Anfänger-Themen 12
Arabicabohne Fehlermeldung bei Eclipse Java Basics - Anfänger-Themen 23
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
TheMenox Fehlermeldung / Arrays, Enhanced For Loops Java Basics - Anfänger-Themen 16
D Compiler-Fehler Anfänger Fehlermeldung Java Basics - Anfänger-Themen 3
Henri Fehlermeldung Java Basics - Anfänger-Themen 2
K Erste Schritte Fehlermeldung Java Basics - Anfänger-Themen 2
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
J Bug? Seltsame Fehlermeldung Java Basics - Anfänger-Themen 7
J Fehlermeldung else without if Java Basics - Anfänger-Themen 5
J while(nst == 0) gibt Fehlermeldung Java Basics - Anfänger-Themen 4
L Fehlermeldung Java Basics - Anfänger-Themen 6
D Erste Schritte Fehlermeldung "Syntax error on token ";", { expected after this token" Java Basics - Anfänger-Themen 13
J Launcher Fehlermeldung Java Basics - Anfänger-Themen 0
A Fehlermeldung Unklar, google hilft auch nicht weiter Java Basics - Anfänger-Themen 2
H Compiler-Fehler Fehlermeldung Kompilier Java Basics - Anfänger-Themen 4
A Fehlermeldung Unklar. Java Basics - Anfänger-Themen 1
D Integer Fehlermeldung exception Java Basics - Anfänger-Themen 4
A Fehlermeldung beim aufruf der main Methode Java Basics - Anfänger-Themen 17
H Kein Zugriff auf das Element einer JList möglich: Fehlermeldung Java Basics - Anfänger-Themen 2
S Vererbung Fehlermeldung: the hierarchy of the type "class name" is inconsistent Java Basics - Anfänger-Themen 10
D Fehlermeldung "com.element.JavaUpload.Manager" Java Basics - Anfänger-Themen 1
S Fehlermeldung bei format methode Java Basics - Anfänger-Themen 1
A Compiler-Fehler Fehlermeldung auf Mac Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben