# Auf Button - Druck soll Rechteck Farbe verändern



## Joker26 (20. Nov 2006)

Hallo Leute!

 Ich möchte die Füllfarbe eines Rechtecks auf Button-Druck verändern.
 z.B. ( Grün,Blau, Gelb)

 Das Programmieren der Grafik und der Button's war kein Problem.
 (Button --> über ActionLisener aktivieren ist auch kein Problem)

 Mein Problem ist folgendes... wie kann ich es  erreichen,das sich die Farbe im Rechteck auf Button-Druck 
 verändert.....

 Vielen Dank für Eure Hilfe


----------



## Wildcard (20. Nov 2006)

Na die neue Farbe setzen. Kannst du dein Problem damit näher erklären?


----------



## Joker27 (20. Nov 2006)

die Farbe setzen ( mit draw.setColor()ist klar), aber ich weiss nicht wo ich das machen soll... in der paint Methode??...

oder muss ich eine eigene Methode schreiben..


----------



## Wildcard (20. Nov 2006)

Gib deiner Klasse einen setter für die Farbe und ein Attribut color das du in paintComponent zum zeichnen verwendest.


----------



## André Uhres (20. Nov 2006)

Joker27 hat gesagt.:
			
		

> die Farbe setzen ( mit draw.setColor()ist klar), aber ich weiss nicht wo ich das machen soll... in der paint Methode??...


Das hängt von der jeweiligen Klasse ab. Es gibt z.B. auch Klassen mit der "setBackground" Methode.
Das ist der Fall, wenn sie von JComponent abgeleitet sind:

```
component.setBackground(Color.red);
```
Da wir nicht hellsehen können, wissen wir ja nicht was du jetzt gerade gecodet hast.


----------



## Gast (20. Nov 2006)

Hier so ein kleiner Auschschnitt aus meinem Programm        
  ......
	public void paint (Graphics g)
	{

	    Graphics2D g2 = (Graphics2D)g;

	    super.paint(g);

	    g2.setColor(Color.BLACK);

	    g2.draw(rect);

	    g2.setColor(Color.GREEN);

	    g2.fill(rect);

	}

.......

class ButtonListener implements ActionListener
	   {

	      public void actionPerformed(ActionEvent e)
	      {
                       if("Blau".equals(e.getActionCommand()))
                            HIER SOLL DANN FARBE VERÄNDER WERDEN
                         .....
}

braucht ihr noch Infos.....


----------



## André Uhres (21. Nov 2006)

```
...
    private Color color;
...
        color = Color.GREEN;
...
    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D)g;
        super.paint(g);
        g2.setColor(Color.BLACK);
        g2.draw(rect);
        g2.setColor(color);
        g2.fill(rect);
    }
...
    class ButtonListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            if("Blau".equals(e.getActionCommand())){
                color = Color.BLUE;
                repaint();
            }
        }
    }
...
```


----------



## Joker26 (21. Nov 2006)

Habe es genau so abgeschrieben das Programm.......
die Farbe wird aber nicht verändert...


----------



## Joker26 (21. Nov 2006)

Entschuldige bitte...habe ein Fehler gemacht
Hab vielen Dank für deine Hilfe ....
es funktioniert wunderbar.....


----------

