Action Verarbeitung

Na_dine

Mitglied
Hallo,
Ich bin gerade dabei meine erste Applikation zu erstellen und hake seit einiger Zeit an einem Problem: ActionListener

Problembeschreibung:
Ich erstelle ein CardLayout in einer Klasse (GUI), den Inhalt der einzelnen Cards erstelle ich in separaten Klassen(so z.B. Hauptmenue, Anleitung ....) in der Klasse GUI wollte ich neben der erstellung des CatdLayouts auch die gesamte ActionVerarbeitung laufen lassen. Nun funktioniert die Actionuebermittlung aus meinen anderen Klassen nicht in die Klasse GUI :-(

Hier meine Klasse des CardLayouts und Action...
Code:
public class GUI implements ActionListener(

protected static CardLayout cards;
Container contentPane;
JPanel anleitung, menue;

public GUI() (
[...]
cards = new CardLayout();
contentPane.setLayout(cards);

menue = new Menue();
anleitung = new Anleitung();
contentPane.add(menue,"eins");
contentPane.add(anleitung,"zwei");

cards.show(contentPane, "eins");
[...]
public void actionPerformed(ActionEvent event)(
String a = event.getActionCommand();
if(a.equals("anleitung")
cards.show(contentPane,"zwei");
)

Hier meine Klasse in der ich den Inhalt fuer die Card "eins", das menue erstelle. Hier befinden sich JButtons, deren ActionListener in Kontakt zur GUI Klasse stehen sollten:

Code:
public class Menue extends JPanel(

static ActionListener action;

public Menue() (
[...]
action = new GUI();

JButton auswahl = new JButton();
auswahl.addActionCommand("anleitung");
auswahl.addActionListener(action);
[...]

der Compiler wirft mir keine Problembeschreibung aus...
Vielen Dank im Vorraus fuer alle Ideen und Anregungen,
Nadine
 
Hallo,

ehrlich gesagt weiss ich nicht so genau wie Du das meinst, aber mach Dir doch für Deine
Events einfach eine Controller Klasse:

Java:
private class ButtonViewController implements ActionListener { 
  
      public void actionPerformed(ActionEvent e) { 
         //fireActionEvent(new ActionEvent(ButtonView.this, e.getID(), e.getActionCommand())); 
          
         if (e.getActionCommand().equals("actionbutton1")) 
            System.out.println("button 1 geklickt!"); 
         else if (e.getActionCommand().equals("actionbutton2"))    
            System.out.println("button 2 geklickt!"); 
      } 
   }

Und dann rufst du den Controller zum Beispiel so auf:

Java:
ButtonViewController con = new ButonViewController(); 

button1.setActionCommand("actionbutton1"); 
button1.setActionListener(con);

Ich hoffe, dass es Dir weiter hilft ..

VG
 
Zurück