# actionPerformed in einer Klasse Buttons



## xpucto (13. Mrz 2005)

Hallo! 
Ich schreibe derzeit eine Applikation und bin derzeit nur mit der GUI und Events beschäftigt. Ich habe die Menüs und ihre Events bei der Hauptklasse geschrieben (wo der Main Methode ist). Bis jetzt läuft alles gut. Dann möchte ich eine Klasse Buttons schrieben, die sich mit nur der Buttons beschäftigt. Die Buttons sind erzeugt aber bei den Events gibt es keine reaktion. Ich verstehe nicht warum.  Hier ist der Code der Klasse Buttons :

```
//* Klasse: Buttons		*
//*				*
//*******************************

/* 	Die Klasse erzeugt und verweltet Ereignissen von Buttons
   	Als Argument wird ein Panel von HauptPanel gebraucht  */

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Buttons extends JPanel implements ActionListener {

	static HauptPanel ss;  //Die Buttons werden mit einem Panel zusammen verbunden
	//Buttons
	protected JButton bGrammatik;
        protected JButton bMuendlich;
        protected JButton bSchrifftlich;

	//Konstruktor
	public Buttons (HauptPanel hPanel) {    //Der Konstruktor braucht einen HauptPanel Objekt als Argument
	super();
	ss = hPanel;
	setLayout(new FlowLayout(FlowLayout.CENTER));

        JButton bGrammatik = new JButton("Exercices de grammaire",new ImageIcon("graphics/book01.gif"));
        JButton bMuendlich = new JButton("Compéhension orale",new ImageIcon("graphics/beans.gif"));
        JButton bSchrifftlich = new JButton("Compréhension écrite", new ImageIcon("graphics/filview2.gif"));
        //Hinfuegen
        add(bGrammatik);
        add(bMuendlich);
        add(bSchrifftlich);
	//Events
	bGrammatik.addActionListener(this);
	bMuendlich.addActionListener(this);
	}//End Konstruktor


     		//**************
                //  Ereignisse *
                //**************
public void actionPerformed(ActionEvent ae)
{
        //Quelle des Ereignisses
        Object quelle = ae.getSource();

        if (quelle == bGrammatik) {
	String  messageDanke = "Grammaire\n ";
        JOptionPane.showMessageDialog(null, messageDanke, "Grammaire test", JOptionPane.INFORMATION_MESSAGE);
        //JOptionPane.showMessageDialog(ss, messageDanke, "Grammaire test", JOptionPane.INFORMATION_MESSAGE);
        }//End if bGrammatik

        if (quelle == bMuendlich) {
	String  messageDanke = "Grammaire\n ";
        JOptionPane.showMessageDialog(null, messageDanke, "Grammaire test", JOptionPane.INFORMATION_MESSAGE);
        }//End if bGrammatik
}//End actionPerformed

}//End class Buttons
```
Hat Jemand eine Idee?
Danke.


----------



## Beni (13. Mrz 2005)

Du erzeugst zwei Variablen "bGrammatik", einmal als Objektvariable auf Zeile 17, und einmal als Methodenvariable auf Zeile 27. Diese beiden Variablen haben *nichts* miteinander zu tun.

Mach in Zeile 27 aus "JButton bGrammatik = ..." ein "bGrammatik = ...", dann gibt es nur noch eine Variable.

Dasselbe gilt für die anderen Buttons.


----------



## xpucto (13. Mrz 2005)

Danke!


----------

