# NullPointerException bei Label.setText()



## zhermann (28. Sep 2017)

Hallo, 

stehe im Moment vor einem Rätsel. Versuche einem Label einen text zu zuweisen und bekomme immer einen NullPointerExeption. In einem anderem Contoller mache ich genau das gleiche und das funktioniert es. Sieht einer von Euch eventuell meinen Wald ?

Die relevante Zeiele ist:


```
this.content.setText(getXlsCellContent());                                   // Label mit selektiertem Zellinhalt befüllen
```


Hier der komplette Code:


```
package application.controller;

import java.io.File;
import java.io.IOException;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class SAPImportController {
   
   @FXML GridPane gridSAPImport;
   
   private int sheetCols;
   private int sheetRows;
   private Cell sheetCell;
   private String xlsCellContent;
   private Label content;
   
   public SAPImportController(File xlsFile ) throws BiffException, IOException {
       Workbook xlsBook = Workbook.getWorkbook(xlsFile);                                   // Excel Datei öffnen
       Sheet xlsSheet = xlsBook.getSheet(0);                                               // Sheet selectieren
       sheetCols = xlsSheet.getColumns();                                                   // wie viele Spalten?
       sheetRows = xlsSheet.getRows();                                                       // wie viele Zeilen?
           
       System.out.println("Zeilen:" + this.sheetRows  + " - Spalten: " + this.sheetCols);   // Kontrollausgabe - WIEDER LÖSCHEN
       
       for (int row = 0; row < sheetRows; row++) {                                           // Zeilen
           for (int col = 0; col < sheetCols; col++) {                                       // SPalten
               this.sheetCell = xlsSheet.getCell(col, row);                               // Selektiere Zelle Spalte/Zeile
               setXlsCellContent(sheetCell.getContents());                                   // Hole Inhalt von der selektireten Zelle
               
               System.out.println("Inhalt der Zelle ist: "+ getXlsCellContent() +"\n");   // Kontrollausgabe - WIEDER LÖSCHEN
               
               this.content.setText(getXlsCellContent());                                   // Label mit selektiertem Zellinhalt befüllen

               //gridSAPImport.add(new Label(content), col+1, row+1);                         // Label in das grid einfügen
           }
       }
   }

   public String getXlsCellContent() {
       return xlsCellContent;
   }

   public void setXlsCellContent(String xlsCellContent) {
       this.xlsCellContent = xlsCellContent;
   }
   
}
```


----------



## VfL_Freak (28. Sep 2017)

Moin,

mal ins Blaue geraten:


zhermann hat gesagt.:


> xlsCellContent


das wird dies wohl NULL sein ... 

VG Klaus


----------



## zhermann (28. Sep 2017)

Nö, da das 


```
System.out.println("Inhalt der Zelle ist: "+ getXlsCellContent() +"\n");
```

einen korrekten Wert liefert.


----------



## VfL_Freak (28. Sep 2017)

Moin,

dann poste doch den kompletten StackTrace und den dazu relevanten Code 
So ist es eine einzige Rumraterei - und das will keiner !!

VG Klaus


----------



## Harry Kane (28. Sep 2017)

Das Label "content" wird zumindest im gezeigten Code nirgendwo initialisiert.


----------



## zhermann (28. Sep 2017)

Danke Harry,

du Hast den Wald gefunden. 
Wenn ich das ganze im CONSTRUCTOR versuche  ist die NullPointException voll kommen richtig.
Die Objekte sind n och nicht fertig initialisiert. 
Hier bewahreitet sich wieder der Spruch: "*Eile mit Weile*"
Danke, Danke


----------

