# JTable: Prüfen ob Zelle leer ist



## MarDaiBre (13. Okt 2014)

Hallo,

ich habe eine JTable, welche in einem nächsten Schritt in eine PDF umgewandelt wird. Das funktioniert alles bisher, nur erhalte ich eine Fehlermeldung, wenn eine Zelle keinen Wert besitzt / also leer ist. Ich habe nun mit verschiedenen Ansätzen probiert, vorab zu prüfen, ob die Zelle leer ist. Aber leider hat dies mit if nie funktioniert.


```
if(tab.getModel().getValueAt(j, i).equals(null)) // habe es auch mit sämtlichen Varianten probiert.
table.addCell("");

else
tabelle.addCell(tab.getModel().getValueAt(j, i).toString());
```

Kann mir jemand einen Hinweis geben, was bei if stehen muss, damit die Prüfung (ob Zelle leer) funktioniert? Danke schonmal!


----------



## MichaProgs (13. Okt 2014)

Hallo MarDaiBre,

füge vor dem 'equals' noch ein .toString() ein und ändere den zu überprüfenden Wert von 'null' zu Anführungszeichen.


```
if(tab.getModel().getValueAt(j, i).toString().equals(""){
      table.addCell("")
}else{
      tabelle.addCell(tab.getModel().getValueAt(j, i).toString());
}
```

Ich hoffe ich konnte helfen.

Gruß
TB94


----------



## MarDaiBre (13. Okt 2014)

Hallo TB94,

leider hat auch das nicht geklappt. :-( Zum Test habe ich mal ein System.out.print machen lassen. Er gibt auch hier alles aus bis zu dem Punkt wo eine leere Zelle auftaucht - dann bricht er ab und gibt die Fehlermeldung:


```
java.lang.NullPointerException
	at risikoverwaltung.model.Reporterstellung.createTable(Reporterstellung.java:160)
	at risikoverwaltung.model.Reporterstellung.addContent(Reporterstellung.java:114)
	at risikoverwaltung.model.Reporterstellung.<init>(Reporterstellung.java:47)
	at risikoverwaltung.view.AuswertungGUI.actionPerformed(AuswertungGUI.java:1633)
	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.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$400(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(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)
```

Müsste doch aber eigentlich klappen...


----------



## Joose (13. Okt 2014)

Prüfe doch zuerst ob du mit der Methode "getValue" vom TableModel überhaupt ein Objekt zurückbekommst.
Ich nehme an du bekommst nichts zurück. Probierst dann abber mit "toString()" und "equals()" Methoden auf diesem (nicht vorhandenen) Objekt auszuführen ---> NullPointerException


----------



## MarDaiBre (13. Okt 2014)

Nun, ich habe nun probiert mit

```
if(tab.getModel().getValueAt(j, i) == null)
......
```
aber auch da immer ein Error. Ich frage ihn doch, ob der Value in der Zelle j/i null ist. Warum führt das zu einem Fehler und wie soll ich das denn anders ermitteln?


----------



## MarDaiBre (13. Okt 2014)

Ohhhhh, ich habe gerade noch vergessen, das System.out.print rauszunehmen. Nun geht es! Danke euch beiden


----------

