# Buttonfarbe ändern



## mix2k1 (29. Mrz 2007)

```
package de;
import javax.swing.*;
import java.awt.event.*;
import java.awt.Color; 
import java.awt.Dimension; 

class Fenster extends JFrame implements ActionListener
{
	public Fenster () 
	{
		super("Erstes GUI");
		JPanel myPanel = new JPanel();
		setContentPane(myPanel);
		JButton myButton1 = new JButton("Press");
		myButton1.setActionCommand("Gruen");
		JButton myButton2 = new JButton("OK");
		myButton2.setActionCommand("Okay");
		myPanel.add (myButton1);
		myPanel.add (myButton2);
		setSize(new Dimension (400, 300)); 
		setDefaultCloseOperation(EXIT_ON_CLOSE);	//Programmende, Fenster zu

		myButton1.addActionListener(new ActionListener() {
			// Implementierung der Schnittstelle
			public void actionPerformed(ActionEvent e) {
			setForeground(Color.cyan);
			}});

		myButton2.addActionListener(new ActionListener() {
			// Implementierung der Schnittstelle
			public void actionPerformed(ActionEvent e) {
			setForeground(Color.red);
			}});
	
	public void actionPerformed(ActionEvent e) {
                };	
	}

	public static void main (String args[]) 
	{
		Fenster fenster = new Fenster();
		fenster.setVisible (true);
	}
}
```

Bei mir funktioniert der obige Code nicht. Ich muss irgendwie dem Actionlistener sagen, welches Object was gesendet hat oder? Bzw. muss ich ein Obejct übergeben? Hab zwar ein ähnliches Beispiel hier im Forum gefunden, doch werde ich daraus nicht schlau


----------



## Leroy42 (29. Mrz 2007)

```
final JButton myButton1 = new JButton("Press");
		...
		myButton1.addActionListener(new ActionListener() {
			// Implementierung der Schnittstelle
			public void actionPerformed(ActionEvent e) {
			myButton1.setForeground(Color.cyan);
			}});
		...
```


----------



## mix2k1 (29. Mrz 2007)

bedeutet final, das die Buttons dann Global sind? Das soll nicht sein.


----------



## Leroy42 (29. Mrz 2007)

1. Nein!
2. In Java gibt es überhaupt keine globalen Variablen.

Es dient nur dazu, daß auf diese Variable innerhalb
der inneren Klasse zugegriffen werden kann.

Laß "final" einfach mal weg und schau' was dir der Compiler dann sagt.  :wink:


----------



## mix2k1 (29. Mrz 2007)

THX.
Ich weiß, dann meckert er.
Das mit dem "Global" war falsch ausgedrückt. Ich meinte, ob es die "anonyme" Variante sei, da ich diese verwenden soll.


----------



## Leroy42 (30. Mrz 2007)

mix2k1 hat gesagt.:
			
		

> Ich meinte, ob es die "anonyme" Variante sei, da ich diese verwenden soll.


Ja!


----------

