# Tastendrücke



## cybren (24. Mai 2014)

Hallo folgendes Problem: 
ich habe die ganz normale MouseClicked methode dadrin rufe ich 
	
	
	
	





```
Screen.store.click(e.getButton());
```
auf Die Methode:
	
	
	
	





```
public void click(int mouseButton){
		if(mouseButton == 1){
			for(int i=0;i<button.length;i++){
				if (button[i].contains(Screen.mse)){
					if(buttonID[i]!= Value.airAir) {
					if (buttonID[i] ==Value.airThrashCan ){
					holdsItem = false;
					}else {
					heldID = buttonID [i];
					realID=i;
					holdsItem = true;
					
					}
					}
					}
				}
```
 das funktioniert auch alles aber wenn ich eine Weitere Methode :
	
	
	
	





```
public void upgrade(int button){
	if(towerSquare.contains(Screen.mse)){
	if(button == 1){
				isGedrückt = true;
		}
		}
```
auch mit: 
	
	
	
	





```
Screen.block.upgrade(e.getButton());
```
 aufrufe bekomme ich eine nullPointerException beim Aufrufen. Warum? bei der einen geht´s und bei der andren nicht? 

danke schonmal im vorraus


----------



## Ruzmanz (24. Mai 2014)

In der Fehlermeldung müsste die Zeile stehen, wo der NPE geworfen wird. Wenn deine Variable null ist, kannst du keine Methoden aufrufen ... An Screen.block oder towerSquare wirds wohl liegen.


----------



## cybren (24. Mai 2014)

ja wie gesagt bei 
	
	
	
	





```
MouseClick (MouseEvent e){
Screen.block.upgrade(e.getButton();
```
aber da die Variable e.getButton bei beiden gleich ist dürfte er keine NPE werfen oder?


----------



## Ruzmanz (24. Mai 2014)

Screen.block ist NULL oder towerSquare ist NULL. Ist das deutlich genug? Das kannst du mit dem Debugger prüfen. Du kannst eine Zeile vorher auch den Variableninhalt ausgeben lassen (System.out.println(Screen.block) oder System.out.println(Screen.towerSquare)).


----------

