Methode aus einer anderen Klasse ausführen

acevik94

Mitglied
Hallo Community!
Ich programmiere ein Spiel mit Java und habe folgendes Problem.
Ich habe 2 Klassen, Main und GoAnim. In der Main Klasse habe ich JFrame, labels, buttons usw. initialisiert und für den ersten Spieler habe ich ein Label(PlayerOne) erzeugt. Nun rufe ich die Methode ChangePos1(...Parameter...) in der GoAnim Klasse auf, lasse das Programm etwas ausrechnen und anschliessend rufe ich die Methode setPosition1(...Parameter...) in der Main Klasse auf, kurz danach bekomme ich java.lang.NullPointerException Fehler. Hier ist mein Quelltext:

Java:
public class Main extends javax.swing.JFrame{
        ButtonClickEvent(){ // ich klicke auf ein Button und passiert folgendes
              GoAnim objectGoAnim = new GoAnim();
              //X,Y sind Koordinaten, Roll und Pos sind beliebige int Werte
              objectGoAnim.ChangePos1(int Roll, int Pos, int X, int Y);
        }
              .............. //Hier sind andere Methoden, die unwichtig sind 
        //Diese Methode werde ich spaeter aufrufen
          public void setPosition1(String PosName1, int PosNumber, int X, int Y){
               Position1 = PosName1; //Name der Position
               PosNumber1 = PosNumber; //wird in GoAnim ausgerechnet
               //PlayerOne ist ein Label, neue Y-Koordinate wird berechnet
               PlayerOne.setLocation(X,Y);
        }
}
public class GoAnim extends Main{
         Main objectMain = new Main();
        public void ChangePos1(int Roll, int Pos, int x, int y){
                   int newPos = Roll + Pos; //rechne neue Position
                   y -= 20; //Y Koordinate wird um 20 verringert
                   objectMain.setPosition1("PositionX", newPos, x, y);
        }
}
Die Fehlermeldung ist :
Code:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
   at GoAnim.ChangePos1(GoAnim.java:60)
   at Main$33.actionPerformed(Main.java:651)

Ich verstehe nicht warum ich NullPointer Fehler bekomme. Ich habe in der Methode
setPosition1(...Parameter...) die übergegebenen Parameter ausgegeben lassen und
die Werte waren richtig und "null" war nicht dabei.
Wie kann ich diesen Fehler beheben ?
Ich bedanke mich im Voraus.
 
Zuletzt bearbeitet von einem Moderator:

VfL_Freak

Top Contributor
Moin,

die Exception tritt hier auf:
at GoAnim.ChangePos1(GoAnim.java:60)

Leider weiß keiner, welche Zeile in Deinem Code das ist !!
Zudem fehlt ggf. mehr Code (Aufrufe etc.) !!

Gruß Klaus
 

Elenteria

Bekanntes Mitglied
das problem ist dass objectMain zu dem Zeitpunkt null ist.
Wofür brauchst du überhaupt ein seperates Main-Object in der Klasse? GoAnim erweitert doch Main also steht setPosition1 auch GoAnim zur verfügung. probiers mal mit this.setPosition1("PositionX", newPos,x,y);
 

JStein52

Top Contributor
Wieso ist objectMain null ? Ausserdem schreibt er ja auch dass setPosition1 ausgeführt wird. Allerdings ist die gegenseitige Objekterzeugung schon nicht schön und sicher nicht notwendig. Man müsste einfach mal sehen wo die Exception denn nun geworfen wird.
 

Joose

Top Contributor
Ich glaub nicht das "objectMain" null ist und daher diese Exception fliegt. Das Objekt wird ja erstellt sobald ein GoAnim Objekt erstellt wird.

Wir können dir zwar gerne sagen wo dein Problem liegt (dazu musst du uns aber genau sagen was Zeile 60 in der GoAnim Klasse ist), aber es fehlen dir wirkliche Grundlagen und du wirst bald wieder wo Probleme haben.

Ich gebe Elenteria recht: Deine Klasse GoAnim leitet von der Klasse Main ab und ist somit selbst ein "Main" Objekt. Diese Ableitung ergibt für überhaupt keinen Sinn, ebensowenig das bei einem Buttonklick jedesmal ein neue GoAnim Objekt erstellt wird und in diesem GoAnim Objekt wird wieder ein Main Objekt erstellt.
Bevor du groß an dem Spiel weiterarbeitest solltest du dir anhand eines einfachen Konsolenprogramms die Grundlagen der OOP nochmals anschauen! Die sind eben eine der Grundvorraussetzungen für Spiele
 

acevik94

Mitglied
Vielen dank für die schnellen Antworten.
Moin,

die Exception tritt hier auf:
at GoAnim.ChangePos1(GoAnim.java:60)

Leider weiß keiner, welche Zeile in Deinem Code das ist !!
Zudem fehlt ggf. mehr Code (Aufrufe etc.) !!
Gruß Klaus

Zeile 60 ist : "objectMain.setPosition1("PositionX", newPos, x, y);"
Nein es fehlen keine Aufrufe :), da die 3 Methoden zusammenhaengen. Also Es gibt keine andere Methode, die diese Methoden aufruft oder die Werte in diesen Methoden aendert.

das problem ist dass objectMain zu dem Zeitpunkt null ist.
Wofür brauchst du überhaupt ein seperates Main-Object in der Klasse?
GoAnim erweitert doch Main also steht setPosition1 auch GoAnim zur verfügung.
probiers mal mit this.setPosition1("PositionX", newPos,x,y);

Wie kann ein Objekt null sein ? Ich sage ja mainObject soll = new Main() sein (Tut mir leid für die Frage, ich bin neu in java :) )
Ich möchte ja eine Methode in der Klasse Main aufrufen und daher brauche ich ein Objekt. Ich habe gerade getestet und habe gesehen, dass man mainObject nicht braucht :) .
this.setPosition1(); klappt leider auch nicht. Ich bekomme wieder den selben Fehler.
Mit dem Befehl this.setLocation(); bekomme ich zwar keinen Fehler aber das Label bewegt sich nicht :(
 

Joose

Top Contributor
Zeile 60 ist : "objectMain.setPosition1("PositionX", newPos, x, y);"

Dann ist "objectMain" null und daher auch die NullPointerException.

Ich möchte ja eine Methode in der Klasse Main aufrufen und daher brauche ich ein Objekt. Ich habe gerade getestet und habe gesehen, dass man mainObject nicht braucht :) .

Diese Objekt hast du ja theoretisch schon, daher müsstest du kein neues erzeugen.
Ja das brauchst du nicht weil deine Klasse GoAnim von Main ableitet. Sprich dein GoAnim Objekt ist auch ein Main und enthält somit auch alle Methoden die Main anbietet.

this.setPosition1(); klappt leider auch nicht. Ich bekomme wieder den selben Fehler.
Mit dem Befehl this.setLocation(); bekomme ich zwar keinen Fehler aber das Label bewegt sich nicht :(

Weil du ein komplett neues Objekt hast welches nicht angezeigt wird und an diesem deine Bewegung durchführst. Das Objekt was angezeigt wird bleibt von dir unverändert.

Wie schon oben gesagt fehlen dir die Grundlagen der OOP und die sind für ein Spiel notwendig!
 

acevik94

Mitglied
Für diejenigen die den selben Fehler haben. Nach einer Recherche habe ich endlich die Lösung gefunden :);).
Innerhalb oder ausserhalb der Klick-Methode erzeugt man zunaechst ein Objekt der Klasse. In meinem Fall
GoAnim objectGoAnim = new GoAnim();
Nun ruft man die Methode in der GoAnim-Klasse auf. !!!!!Wichtig !!!!! ist hier, dass man das Label, das man erzeugt hat (also playerOne) als Parameter mitgibt ! sonst funzt. das ganze nicht. Also zb:
objectGoAnim.rufeDieseMethode(JLabel playerOne);
In der rufeDieseMethode schreibt man dann einfach :
playerOne.setLocation(x,y);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
A Ein Array bearbeiten und in einer anderen Methode nutzen Java Basics - Anfänger-Themen 6
A Ergebnis einer Methode bei einer anderen verwenden Java Basics - Anfänger-Themen 13
D Einen boolischen Wert aus einer Methode in einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 11
C Auf die Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 1
A Methode in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 1
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
L Variable von einer Methode zu einer anderen Methode inkl. einer "Zwischenmethode" Java Basics - Anfänger-Themen 1
S Auf Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 3
H Arraydaten aus einer anderen Methode ausgeben Java Basics - Anfänger-Themen 4
H Auf Objekte bzw Variabeln aus einer anderen Methode zugreifen Java Basics - Anfänger-Themen 7
T Return einer anderen Methode herausfinden Java Basics - Anfänger-Themen 9
D Zugriff auf Methode einer anderen Klasse Java Basics - Anfänger-Themen 5
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
R Methoden NPE beim Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 4
P Methode soll Variable einer anderen Klasse ändern. Wie? Java Basics - Anfänger-Themen 1
D Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 39
P Instanz mit .add Methode von einer Klasse zur anderen? Java Basics - Anfänger-Themen 6
N Objekt in Methode einer anderen Klasse erzeugen Java Basics - Anfänger-Themen 9
S Methoden Methode einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 5
M Klassen Main Methode in einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 13
G Methoden Zugriff auf Methode.. aus einer anderen Klasse Java Basics - Anfänger-Themen 6
Tacofan Variabel in einer anderen Methode Java Basics - Anfänger-Themen 2
H Klasse bzw methode der Klasse in einer anderen Klasse benutzen Java Basics - Anfänger-Themen 4
C Array - Methode in einer anderen Aufrufen Java Basics - Anfänger-Themen 1
I Rückgabe und Aufruf einer Methode innerhalb einer anderen Methode Java Basics - Anfänger-Themen 5
S Methoden Methode einer anderen Klasse ausführen? Java Basics - Anfänger-Themen 6
A Arraylist einer Methode, gefüllt einer anderen Klasse übergeben Java Basics - Anfänger-Themen 17
S Aufruf Einer Methode aus einer anderen Klasse - Static Fehler Java Basics - Anfänger-Themen 4
L Methoden Eine Methode aus einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 4
M Methode einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 7
J Wie behalten Variablen den Wert, den sie in einer anderen Methode erhalten haben? Java Basics - Anfänger-Themen 14
E Methoden Variable aus einer anderen Methode in einer Methode aufrufen Java Basics - Anfänger-Themen 7
L Methoden Auf statische Methode einer anderen Klasse zugreifen, die Array zurückgibt Java Basics - Anfänger-Themen 3
H String in Methode einer anderen Klasse übergeben Java Basics - Anfänger-Themen 5
M Methode einer anderen Klasse verwenden Java Basics - Anfänger-Themen 2
D Methode in einer anderen Methode (gleiche Klassse) aufrufen Java Basics - Anfänger-Themen 11
T Auf Variabel in einer anderen Methode zugreifen Java Basics - Anfänger-Themen 4
A Nur einzelne Methode einer anderen Klasse starten Java Basics - Anfänger-Themen 2
D Objekt der Methode einer anderen Klasse zuordnen Java Basics - Anfänger-Themen 6
A Wert einer Variable an eine Methode in einer anderen Klasse. Java Basics - Anfänger-Themen 4
L Zugriff auf Methode einer anderen Klasse -> ')' fehlt ? Java Basics - Anfänger-Themen 2
L Auf aktualisierte Variable einer anderen Methode zugreifen Java Basics - Anfänger-Themen 15
J Von einer Klasse auf eine Methode einer anderen Klasse zugre Java Basics - Anfänger-Themen 6
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
berserkerdq2 Wann soll ich den Stream schließen, wenn ich das in einer Methode habe? Java Basics - Anfänger-Themen 8
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
M Wie kann die Implementation einer Methode den Wert eines Attributs vermindern? Java Basics - Anfänger-Themen 3
M Wie verknüpfe ich eine Bedingung mit einer Methode ohne if-Verzweigung & Bedingungsoperator? Java Basics - Anfänger-Themen 2
D mehrere Berechnungen in einer Methode Java Basics - Anfänger-Themen 9
I Array einer Methode wiedergeben Java Basics - Anfänger-Themen 2
I Argumente einer Java Methode Java Basics - Anfänger-Themen 14
D Methoden Plathhalter für Integer in einer Methode Java Basics - Anfänger-Themen 19
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
T getAttribut in einer Methode aufrufen Java Basics - Anfänger-Themen 8
BorussiaMG1900 Implementation einer Methode Java Basics - Anfänger-Themen 1
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
LetsSebi Methode, die einen arry von objekten speichert in einer datei Java Basics - Anfänger-Themen 6
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
M this.object in einer parameterlosen Methode verwenden Java Basics - Anfänger-Themen 3
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
O BiPredicate in einer forEach Methode Java Basics - Anfänger-Themen 10
L Wie greife ich in der Subklasse auf die Parameter einer Methode der Superklasse zu ? Java Basics - Anfänger-Themen 15
N Methode um Objekte einer Liste hinzuzufügen Java Basics - Anfänger-Themen 1
B Hilfe bei einer rekursiven Methode Java Basics - Anfänger-Themen 3
M Implementierung einer getNextId Methode Java Basics - Anfänger-Themen 5
R Signatur einer Methode in JAVA Java Basics - Anfänger-Themen 4
N Methode mit einer Arraylist Java Basics - Anfänger-Themen 106
I ArrayList - Methode zum Speichern eines Eintrags in einer Datei Java Basics - Anfänger-Themen 17
J Fragen zu einer Methode Java Basics - Anfänger-Themen 3
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
A Mit einer Methode den Konstruktor aufrufen? Java Basics - Anfänger-Themen 2
K Boolean in einer Methode um 2 Objekte zu vergleichen Java Basics - Anfänger-Themen 12
M kann man return in nur einer Methode einsetzen? Java Basics - Anfänger-Themen 7
J NullPointerException beim Klonnen eines Arayys und beim aufrufen einer Methode Java Basics - Anfänger-Themen 2
H Frage zu Parameter einer Methode Java Basics - Anfänger-Themen 2
H Frage zu Parameter einer Methode Java Basics - Anfänger-Themen 3
scratchy1 Kann man in einer Methode eine andere aufrufen? Java Basics - Anfänger-Themen 2
G Die richtige Methode aus einer DTO auszurufen Java Basics - Anfänger-Themen 27
B Klassen Zugriff auf ein Objekt einer Klasse aus einer Methode heraus Java Basics - Anfänger-Themen 4
M BlueJ - Array als Paramter einer Methode eingeben Java Basics - Anfänger-Themen 12
O Arrays sortieren in einer Methode Java Basics - Anfänger-Themen 2
D Compiler-Fehler Aufrufen einer Methode von Main Java Basics - Anfänger-Themen 4
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
E Threads Methode einer Wartenden Klasse aufrufen Java Basics - Anfänger-Themen 3
J Rekursive Methode - Ziffern einer Zahl ausgeben Java Basics - Anfänger-Themen 2
D Methoden JButton und JLabel in einer Methode erstellen Java Basics - Anfänger-Themen 5
C In einer Methode einen Array zurückgeben Java Basics - Anfänger-Themen 2
S Wie erstelle ich eine Vorbedingung für eine Variable einer Methode ? Java Basics - Anfänger-Themen 5
geekex Double zu String umwandeln in einer Methode Java Basics - Anfänger-Themen 28
J String splitten und weiter einarbeiten in einer Methode? Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben