# Cursor Farbe ändern



## Bastik1007 (7. Jun 2011)

Ich habe viel gegoogelt, aber nix brauchbares gefunden..

Bei meinem Programm kann man mit 
	
	
	
	





```
public void paint( Graphics z ) {
		    z.fillOval( xa, ya, 5, 5);
		  }
	   public void mouseDragged( MouseEvent mE ) {
		    int x = mE.getX();
		    int y = mE.getY();
		    xa = x-5;
		    ya = y+40;
		    repaint(xa, ya, 5, 5);
		  }
```
zeichnen. 
Ich will nun die Cursorfarbe ändern, bzw. die Farbe von z ändern, wenn ein Button gedrückt wird...ich kann aber z keinen ActionListener zuweisen

Habe auch schon probiert das z vor der Methode zu deklarieren undd ann über einen ActionListener zu sagen, z.setColor(Color.xxx); ...aber das funktioniert auch nicht.


----------



## tagedieb (7. Jun 2011)

Nein, du musst das 
	
	
	
	





```
z.setColor(newColor)
```
 direkt vor dem 
	
	
	
	





```
z.fillOval(...)
```
 deklarieren. Du kannst nicht ausserhalb der paint Methode auf Graphics zugreifen.

Speichere einfach die neue Farbe in einer Variable in dieser Componente mittels ActionListener. Beim naechsten paint wird er dann die neue Farbe verwenden.

PS. Wieso heisst deine Graphics Variable 
	
	
	
	





```
z
```
?


----------



## Bastik1007 (7. Jun 2011)

ach das war noch weil ich probiert hatte, die variable vor der methode zu deklarieren und ich schon eine variable g habe ^^ und danke dir


----------



## Bastik1007 (7. Jun 2011)

Kannst du mir doch evtl. zeigen, wie du das gemeint hast mit "Speichere einfach die neue Farbe in einer Variable in dieser Componente mittels ActionListener. Beim naechsten paint wird er dann die neue Farbe verwenden." 

Ich versteh nämlich nich, wie ich die farbe in einer variable speichern kann?
bitte?


----------



## Bastik1007 (7. Jun 2011)

Warum funktioniert es nicht über Getter und Setter?

```
public void setColor(Color r) {
			 r = c;
		 }
		 public Color getColor() {
			 return c;
		 }
```
im actionlistener des Buttons sage ich, dass er setColor die farbe zuweisen soll, und in der paint methode dann: 
	
	
	
	





```
z.setColor(getColor());
```

?


----------



## BumBel (7. Jun 2011)

versuch es in der Settermethode mal 
	
	
	
	





```
c=r;
```
 sonst überschreibst du ja den Parameter r und nicht die Variable der du den Wert r zuweisen willst


----------



## Bastik1007 (7. Jun 2011)

Ohhh, wie mir das nicht aufgefallen ist >.<

Aber okay, ich danke dir. Jetzt funktioniert es einwandfrei


----------

