Getter/Setter NullPointer Exception

ZxSpectrum

Mitglied
Hallo,

ich habe ein kleines Problem bei meinem Programm und stehe völlig auf dem Schlauch...

Ich habe drei Klassen:
- Player
- PlayerPanelSingle
- Game

Nun sieht es so aus, dass ich in PlayerPanelSingle einen JTextField habe, aus den ich im Game einen String rausholen möchte und diesen String anschließend im Game für den Konstruktor von Player verwenden. Wenn ich dies in PlayerPanelSingle mache funktioniert es ideal, sobald ich das ganze zu der Klasse Game verlagern will, bekomme ich sofort eine NullPointer Exception. Kann mir vielleicht jemand von euch einen Tipp geben, wo mein Denkfehler liegt?

Dies ist das relevante von der Klasse "Player"
Java:
private String name;
private char symbol;
private boolean current;

public String getName(){
        return name;
    }//getName

    public void setName(String insertName){
        name = insertName;
    }//setName

So hole ich die Variable direkt im PlayerPanelSingle raus, hier funktioniert´s noch
Java:
Player player = new Player();
setTmp(playerName.getText()); //Text aus dem JTextField wird zwischen gespeichert
player.setName(getTmp()); // Und anschließend in den SetName von Player eingeschrieben
System.out.println(player.getName()); //It works!

Komischerweise, wenn ich das ganze im Game so ausführe, kriege ich die NullPointer:
Java:
Player player = new Player();
pps.setTmp(pps.playerName.getText());
player.setName(pps.getTmp());
System.out.println(player.getName());

Kann mir jemand einen Hinweis geben, wie man das lösen kann?
Vielen Dank im Voraus!
 

mrBrown

Super-Moderator
Mitarbeiter
Das Problem werden nicht die Getter/Setter sein. Ich würde drauf tippen, das pps oder pps.playerName null sind, dafür müsste man aber mehr Code sehen, und wissen, in welcher Zeile genau der Fehler auftritt ;)
 

ZxSpectrum

Mitglied
Hm... Ich habe zumindest festgestellt, dass es schon bei der Übergabe von PlayerPanelSingle zu Game Mekker gibt.

Das ist meine PlayerPanelSingle Klasse:

Java:
  private JTextField nameField = new JTextField();
   private String playerName;
   private String tmp;
   
   public String getPlayerName() {
     return playerName;
   }

   public void setPlayerName(String tmp) {
     this.playerName = tmp;
   }

   public PlayerPanelSingle() {
     this.setTitle("Spieler Panel");
     this.setSize(350, 150);
     initComponents();
     setWindowToMiddle();
     this.setResizable(false);
     this.setVisible(true);
   }//Dialog

   public void initComponents(){

     this.getContentPane().setLayout(new GridBagLayout());
     GridBagConstraints c = new GridBagConstraints();

     c.fill   = GridBagConstraints.HORIZONTAL;
     c.gridx   = 0;
     c.insets= new Insets(0, 0, 0, 5);
     this.getContentPane().add(playerLabel,c);

     c.gridx = 1;
     c.ipadx = 40;
     nameField.setText("Spieler1");
     this.getContentPane().add(this.nameField,c);

     c.gridy = 2;
     checkFirst.setSelected(true);
     this.getContentPane().add(checkFirst, c);

     c.gridy = 3;
     save.addActionListener(this);
     this.getContentPane().add(save,c);
   }//initComponents

   //
   public void actionPerformed (ActionEvent ae){
     if(ae.getSource() == this.save){
       
       tmp = nameField.getText();//Text aus dem JTextField zwischenspeichern
       setPlayerName(tmp);//rein in den setter
       System.out.println(getPlayerName());//it wörks!
       
     }//save
   }//ActionPerformed
 

ZxSpectrum

Mitglied
Ok, hier ist die Game.
Eine komische Sache fällt mir schon auf, dass bei der Übergabe vom Symbol kann ich diese Variable sauber reinsetzen und rausholen, das aber nicht über diesen JTextField geht...
Zeile 59-61

Java:
package spielOOP;

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

import javax.swing.AbstractAction;
import javax.swing.Action;

public class Game{

   Board b = new Board();
   Options o = new Options();
   PlayerPanelSingle pps;
   Player player;
   public String symbol;
//   private String name;

   Game(){//Konstruktor
    
     //An dieser Stelle wird das betätigen des Buttons "START" empfangen
     ListenToActions();
   }

   public void ListenToActions(){
     Action newGame = new StartGameAction( this );
     b.setReset.addActionListener(newGame);

     Action saveMode = new SaveMode(this);
     pps.save.addActionListener(saveMode);

     Action play = new PlayAction(this);
     for (int i = 0; i < b.gameField.length; i++) {
       for (int j = 0; j < b.gameField.length; j++) {
         b.gameField[i][j].addActionListener(play);
       }
     }//for
   }//Listen to Actions

   //MUSS NOCH BEARBEITET WERDEN
   public void generate(){
     for (int i = 0; i < b.gameField.length; i++) {
       for (int j = 0; j < b.gameField.length; j++) {
         this.b.gameField[i][j].setEnabled(true);
         this.b.gameField[i][j].setText(" ");
       }//for j
     }//for i
   }

   public void generatePlayer(){//Hier werden die Spieler erstellt    
     if(pps.checkFirst.isSelected()){
      
       Player player = new Player();
      
       String insertName = pps.getPlayerName();
       player.setName(insertName);
       System.out.println(player.getName());
      
//       player.setName("Spieler1");
       player.setSymbol("X");
       symbol = player.getSymbol();
       player.setCurrent(true);
       System.out.println(player.getName() + " " + player.getSymbol() + " " + player.getCurrent());
          
     }else {
       Player player = new Player();
       player.setName("Spieler1");
       player.setSymbol("O");
       symbol = player.getSymbol();
       player.setCurrent(false);
//       System.out.println(player.getName() + " " + player.getSymbol() + " " + player.getCurrent());
     }
   }//play

   public void play(){
     Player player = new Player();
     if(b.gameField[0][0].getModel().isArmed()){
       b.gameField[0][0].setText(symbol);
     }else if(b.gameField[0][1].getModel().isArmed()){
       b.gameField[0][1].setText(symbol);
     }else if(b.gameField[0][2].getModel().isArmed()){
       b.gameField[0][2].setText(symbol);
     }else if(b.gameField[1][0].getModel().isArmed()){
       b.gameField[1][0].setText(symbol);
     }else if(b.gameField[1][1].getModel().isArmed()){
       b.gameField[1][1].setText(symbol);
     }else if(b.gameField[1][2].getModel().isArmed()){
       b.gameField[1][2].setText(symbol);
     }else if(b.gameField[2][0].getModel().isArmed()){
       b.gameField[2][0].setText(symbol);
     }else if(b.gameField[2][1].getModel().isArmed()){
       b.gameField[2][1].setText(symbol);
     }else if(b.gameField[2][2].getModel().isArmed()){
       b.gameField[2][2].setText(symbol);
     }
   }//play

   //############################################## ABSTRACT ACTIONS ################################################  
   class StartGameAction extends AbstractAction{

     private Game game;
     private Board board;

     public StartGameAction( Game game){
       this.game = game;
     }

     public void actionPerformed( ActionEvent e ) {
       game.generate();
     }
   }//Start Game Action

   public class SaveMode extends AbstractAction {

     private Game game;

     public SaveMode( Game game){
       this.game = game;
     }

     public void actionPerformed( ActionEvent e ) {
       game.generatePlayer();
     }
   }//Save Mode

   public class PlayAction extends AbstractAction {

     private Game game;

     public PlayAction( Game game){
       this.game = game;
     }

     public void actionPerformed( ActionEvent e ) {
       game.play();
     }
   }//Play Action

}//Game
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
W Getter/Setter Java Basics - Anfänger-Themen 4
KogoroMori21 Objektvariable anderer Klasse übernehmen, Getter/Setter Java Basics - Anfänger-Themen 11
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
KogoroMori21 Getter und Setter Java Basics - Anfänger-Themen 5
S Klassen instanziieren und verwenden von Getter und Setter Java Basics - Anfänger-Themen 4
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
V getter/setter Garage Java Basics - Anfänger-Themen 12
S getter, setter in abstrakter Klasse oder lieber Unterklassen Java Basics - Anfänger-Themen 4
topi Kapselung getter und setter Java Basics - Anfänger-Themen 5
D Setter/Getter für Instanzvariablen praktisch? Java Basics - Anfänger-Themen 19
S Getter/Setter - Variablenklasse ? Java Basics - Anfänger-Themen 5
S getter and setter Java Basics - Anfänger-Themen 12
L Getter und Setter Java Basics - Anfänger-Themen 2
M Generics getter und setter Methoden Java Basics - Anfänger-Themen 4
E Methoden Objekte in Methode aufrufen ohne getter und setter? Java Basics - Anfänger-Themen 1
L Klassen - Getter & Setter Methoden Java Basics - Anfänger-Themen 2
D Erste Schritte Java - Setter und Getter Java Basics - Anfänger-Themen 1
K Klassen Setter/Getter Java Basics - Anfänger-Themen 3
F OOP Schleifen und Probleme mit Setter und Getter Java Basics - Anfänger-Themen 1
L Setter und Getter/Vererbung Java Basics - Anfänger-Themen 6
K Kapselung getter & setter Java Basics - Anfänger-Themen 11
J Frage zu Setter u. Getter Java Basics - Anfänger-Themen 7
T Variablen Getter-Setter vs Public Variable? Java Basics - Anfänger-Themen 5
Y Konstruktor - Setter/Getter Java Basics - Anfänger-Themen 3
N Klassen fragen zur getter und setter methode Java Basics - Anfänger-Themen 11
D Ab wann getter und setter Java Basics - Anfänger-Themen 2
K getter & setter Java Basics - Anfänger-Themen 6
C getter/setter Problem anscheinend Java Basics - Anfänger-Themen 13
G Erste Schritte Getter und Setter Java Basics - Anfänger-Themen 12
B Getter,Setter - Konstruktor überflüssig? Java Basics - Anfänger-Themen 26
N Sprite Methode (Getter, Setter, Konstruktor) Java Basics - Anfänger-Themen 9
S getter/setter aufrufen Java Basics - Anfänger-Themen 9
B Java getter/setter funktioniert nicht! Java Basics - Anfänger-Themen 7
X OOP Getter/Setter überschreiben den Wert ihrer Variablen nicht Java Basics - Anfänger-Themen 4
T Erste Schritte Verständnisfrage: Getter und Setter Methoden Java Basics - Anfänger-Themen 3
V public Variablen vs Getter + Setter Java Basics - Anfänger-Themen 4
F Getter und Setter Java Basics - Anfänger-Themen 4
lulas[]args getter/setter umstellung Java Basics - Anfänger-Themen 6
B Klassen Getter-Setter vor neuem Klassenaufruf - wie? Java Basics - Anfänger-Themen 20
N OOP Getter, Setter und andere Probleme Java Basics - Anfänger-Themen 8
A OOP Getter und Setter Java Basics - Anfänger-Themen 18
L Unterschied Konstruktor / Getter Setter Java Basics - Anfänger-Themen 13
L Setter und Getter für Arrays? Java Basics - Anfänger-Themen 4
N boolean bei Setter und getter methoden Java Basics - Anfänger-Themen 21
J Getter und Setter auch intern benutzen - guter Stil? Java Basics - Anfänger-Themen 31
Houly Setter/Getter MEthoden testen Java Basics - Anfänger-Themen 4
P OOP Getter&Setter Methoden funktionieren nicht Java Basics - Anfänger-Themen 7
H Setter-und-Getter-Konvention Java Basics - Anfänger-Themen 8
V Reflection API - getter und setter Java Basics - Anfänger-Themen 7
-horn- EINE setter/getter klasse aus mehreren klassen befüllen Java Basics - Anfänger-Themen 13
C Getter/Setter Java Basics - Anfänger-Themen 61
H Frage zu getter und setter Java Basics - Anfänger-Themen 5
S Unbenutzte/überflüssige Getter/Setter herausfinden? Java Basics - Anfänger-Themen 2
M getter/setter bei JTextField ? Java Basics - Anfänger-Themen 21
G warum Setter/Getter Java Basics - Anfänger-Themen 25
S In einer Liste auf getter und setter zugreifen Java Basics - Anfänger-Themen 6
Say Class scope und Instance scope und Getter nur selbstgeschrieben Methoden Java Basics - Anfänger-Themen 11
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
O Instanzattribut per Getter Methode zuweisbar, warum? Java Basics - Anfänger-Themen 8
P Klassenübergreifende Ausgabe mittels "getter" nicht möglich Java Basics - Anfänger-Themen 21
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
M Getter einer PriorityQueue Java Basics - Anfänger-Themen 1
KopaCoda Getter mehrfach aufrufen -> ist das guter code? Java Basics - Anfänger-Themen 3
V Getter Methode Java Basics - Anfänger-Themen 38
T Extrahiertes Objekt durch Getter bekommen Java Basics - Anfänger-Themen 2
D Kapselung final Variablen mit Getter? Java Basics - Anfänger-Themen 2
A getter Java Basics - Anfänger-Themen 3
T Getter für Array Java Basics - Anfänger-Themen 4
J-Gallus Ein Getter bekommt eine anderen Type als er Return soll Java Basics - Anfänger-Themen 9
K Public Attribute oder getter - funktioniert leider beides hier nicht Java Basics - Anfänger-Themen 5
P getter Java Basics - Anfänger-Themen 1
M Getter Problematik mit ItemListener Java Basics - Anfänger-Themen 17
S Array und Getter-Methode Java Basics - Anfänger-Themen 2
Avarion Getter von Super-Klasse funktioniert nicht Java Basics - Anfänger-Themen 10
J Variable per Getter holen - wie ? Java Basics - Anfänger-Themen 2
D Getter Mehtode Unsicher Java Basics - Anfänger-Themen 6
M Problem mit getter, liefert nur alte Werte Java Basics - Anfänger-Themen 6
El_Lobo Methoden Zu viele Getter- und Settermethoden - geht das einfacher? Java Basics - Anfänger-Themen 3
G Generics kein Zugriff auf getter eines Objekts Java Basics - Anfänger-Themen 4
M OOP Aufruf vieler Getter Methoden abkürzen? Java Basics - Anfänger-Themen 7
MU5T4NG Getter und Setten bei GUI-Erstellung Java Basics - Anfänger-Themen 13
B Variablen keine Arrayübergabe für getter im Interface Java Basics - Anfänger-Themen 8
J int Wert mit getter holen und in String parsen Java Basics - Anfänger-Themen 5
O Universeller GETTER Java Basics - Anfänger-Themen 5
J Die Getter Methode Java Basics - Anfänger-Themen 6
E [Erledigt] Schöner Code zur Reduktion von unzähligen Getter-Methoden Java Basics - Anfänger-Themen 2
F 2 dimensionales Array getter Methode Java Basics - Anfänger-Themen 3
K Getter Java Basics - Anfänger-Themen 6
S JTextField in anderer Classe mit getter Methode auslesen. Java Basics - Anfänger-Themen 2
M if oder verschiedene getter Java Basics - Anfänger-Themen 31
I If / Else in Setter? Java Basics - Anfänger-Themen 8
M Methoden Zweidimensionaler Array mit Setter Methode ändern Java Basics - Anfänger-Themen 4
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
C Setter-Methode mit final-Attribut Java Basics - Anfänger-Themen 9
M Gettter/Setter Methoden Klassenfelder kapselung und zugriff? Java Basics - Anfänger-Themen 1
JavaTalksToMe Kapselung Setter Frage Java Basics - Anfänger-Themen 15
kilopack15 Ist diese setter-Methode richtig? Java Basics - Anfänger-Themen 2
T setter im Konstruktor einbauen? Java Basics - Anfänger-Themen 8
F Setter Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben