ActionListener in Actionlistener

R0wiwan

Mitglied
Hallo, ich versuche, einen 2. ActionListener am Ende des 1. ActionListener aus einer anderen Klasse einzufügen, damit ich neue Buttons und Befehle machen kann.
Leider funktioniert das nicht ganz.

Hier ist Klasse 1:​


Java:
package Test;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextArea;

import Kapitel.Kapitel1_1;


public class Controller implements ActionListener {
   
    public StoryWindow window;

    public void startStory() {
        window = new StoryWindow(this);
        window.setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        String command = e.getActionCommand();
       
        if (command.equals("Start")) {
           
            JLabel titleNeu = StoryWindow.title;
            titleNeu.setText("Neuer Titel");
           
            JTextArea textNeu = StoryWindow.text;
            textNeu.setText("Neuer Text");
           
            JLabel ausgabeNeu = StoryWindow.ausgabe;
            ausgabeNeu.setText("Neuer Text");
           
            JButton buttonANeu = StoryWindow.auswahlA;
            buttonANeu.setText("Auswahl A");
           
            JButton buttonBNeu = StoryWindow.auswahlB;
            buttonBNeu.setText("Auswahl B");
           
            Kapitel1_1.actionPerformed2(e2);           <----------- Hier ist der Fehler bei mir
           
        }
        else if (command.equals("Exit")) {
            System.exit(0);
        }
       
    }
   
}


Klasse 2:​


Java:
package Kapitel;

import java.awt.event.ActionEvent;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextArea;

import Test.Controller;
import Test.StoryWindow;

public class Kapitel1_1 {
   
    public static void actionPerformed2(ActionEvent e2) {
        String command = e2.getActionCommand();
       
        if (command.equals("Auswahl A")) {
           
            JLabel titleNeu = StoryWindow.title;
            titleNeu.setText("Neuer Titel");
           
            JTextArea textNeu = StoryWindow.text;
            textNeu.setText("Neuer Text");
           
            JLabel ausgabeNeu = StoryWindow.ausgabe;
            ausgabeNeu.setText("Neuer Text");
           
            JButton buttonANeu = StoryWindow.auswahlA;
            buttonANeu.setText("Auswahl A");
           
            JButton buttonBNeu = StoryWindow.auswahlB;
            buttonBNeu.setText("Auswahl B");
        }
   
    }
   
}


Könnt ihr mir helfen?
 
Zuletzt bearbeitet von einem Moderator:
K

kneitzel

Gast
Als erstes paar Hinweise, damit wir Dir helfen können:
a) Code in Code Tags posten (Also über dem Eingabebereich den Knopf </> drücken!)
b) Du bekommst einen Fehler -> Dann gib doch bitte die Details. Lieber mehr als zu wenig posten ... wenn etwas sehr lang ist, dann kannst Du die "Spoiler" Funktionalität nutzen (Hinter den drei Punkten neben der Tabelle versteckt).

Und das sieht vom Aufbau schon extrem dubios aus. Vergiss static - Außer bei der public static void Methode und ggf. bei Konstanten (public static final ....) solltest Du es nicht nutzen.

Und auf den ersten Blick nutzt Du da ein e2, aber du hast kein e2. Willst Du das das ActionEvent, das Du bereits bekommen hast, weiter geben? Dann nutz dies auch (das ist bei Dir e wenn ich das jetzt richtig gesehen habe). Du willst ein anderes ActionEvent haben? Dann erstelle es ...
 

R0wiwan

Mitglied
Als erstes paar Hinweise, damit wir Dir helfen können:
a) Code in Code Tags posten (Also über dem Eingabebereich den Knopf </> drücken!)
b) Du bekommst einen Fehler -> Dann gib doch bitte die Details. Lieber mehr als zu wenig posten ... wenn etwas sehr lang ist, dann kannst Du die "Spoiler" Funktionalität nutzen (Hinter den drei Punkten neben der Tabelle versteckt).

Und das sieht vom Aufbau schon extrem dubios aus. Vergiss static - Außer bei der public static void Methode und ggf. bei Konstanten (public static final ....) solltest Du es nicht nutzen.

Und auf den ersten Blick nutzt Du da ein e2, aber du hast kein e2. Willst Du das das ActionEvent, das Du bereits bekommen hast, weiter geben? Dann nutz dies auch (das ist bei Dir e wenn ich das jetzt richtig gesehen habe). Du willst ein anderes ActionEvent haben? Dann erstelle es ...

Okay, in Zukunft werde ich an die Code Tags denken.
Der Fehler bei der Markierung lautet "e2 cannot be resolved to a variable".
Und e2 habe ich ja eigentlich erstellt, in der 2. Klasse. Das andere ActionEvent ebenfalls.
 
K

kneitzel

Gast
Das e2 ist in der anderen Klasse der Name des Parameters.

Also ich habe eine Methode, die heißt gibTeddybär und diese nimmt einen Teddybär entgegen. Wenn ich den entgegen nehme, dann nenne ich den entgegengenommenen Bären einfach "Teddy". So habe ich eine Möglichkeit, diesen zu benennen.

Aber nur weil ich einen Teddybären im Falle der Übergabe "Teddy" nenne, existiert nicht plötzlich irgendwo ein Teddy. Und wenn Du mir einen TeddyBär geben willst, dann musst Du erst irgendwoher einen bekommen!

So ist es auch bei den Action Listener: Der erwartet ein ActionEvent (= TeddyBär). Und nur weil der zweite Listener den "e2" ( = "Teddy") nennt, existiert der noch nicht woanders. Du musst also, wenn Du da ein ActionEvent übergeben musst, irgend wo ein solches Event her bekommen.
So ein ActionEvent hat der erste ActionListener ja bekommen - diesen könntest Du z.B. verwenden.
 

MoxxiManagarm

Top Contributor
Nur ein paar Gedankengänge am Rande:

- Die Klasse heißt Controller, von daher gehe ich davon aus, dass es sich um ein MVC Pattern handelt. Dahingehend ist der Aufbau ohnehin fragwürdig. Ein Controller sollte keine GUI Elemente kennen. Einen guten Controller hat man meiner Meinung nach geschrieben, wenn man die Swing GUI ohne großen Aufwand in Controller (+Model) ersetzen könnte.
- Auch lässt die Implementierung von Controller und Kapitel1_1 vermuten, dass die Eigenschaften von StoryWindow statisch sind, was ich schrecklich finde.
- Außerdem verletzen diese das Geheimnisprinzip.
- packages sollten außerdem im lowercase benannt werden.

Was ich eigentlich sagen will - Ich sehe in dem Code keine Struktur und kein Ziel. Ich könnte nicht sagen worauf du hinaus willst und entsprechend auch keine echten Tipps geben außer dir meinen leider schlechten Eindruck zu vermitteln. Sicherlich auch nicht sehr konstruktiv. Das tut mir Leid. Für mich ist das nur ein Chaoscode.
 

R0wiwan

Mitglied
Nur ein paar Gedankengänge am Rande:

- Die Klasse heißt Controller, von daher gehe ich davon aus, dass es sich um ein MVC Pattern handelt. Dahingehend ist der Aufbau ohnehin fragwürdig. Ein Controller sollte keine GUI Elemente kennen. Einen guten Controller hat man meiner Meinung nach geschrieben, wenn man die Swing GUI ohne großen Aufwand in Controller (+Model) ersetzen könnte.
- Auch lässt die Implementierung von Controller und Kapitel1_1 vermuten, dass die Eigenschaften von StoryWindow statisch sind, was ich schrecklich finde.
- Außerdem verletzen diese das Geheimnisprinzip.
- packages sollten außerdem im lowercase benannt werden.

Was ich eigentlich sagen will - Ich sehe in dem Code keine Struktur und kein Ziel. Ich könnte nicht sagen worauf du hinaus willst und entsprechend auch keine echten Tipps geben außer dir meinen leider schlechten Eindruck zu vermitteln. Sicherlich auch nicht sehr konstruktiv. Das tut mir Leid. Für mich ist das nur ein Chaoscode.

Das Ziel ist es, dass man auf den Knopf drückt, und dadurch sich die Textausgabe ändert.
Beim ersten ActionListener funktioniert das ja auch, aber ich bekomme es nicht hin, dass nach dem ersten der zweite ActionListener aufgerufen wird und auf die neuen Buttons hört.
 

R0wiwan

Mitglied
Das e2 ist in der anderen Klasse der Name des Parameters.

Also ich habe eine Methode, die heißt gibTeddybär und diese nimmt einen Teddybär entgegen. Wenn ich den entgegen nehme, dann nenne ich den entgegengenommenen Bären einfach "Teddy". So habe ich eine Möglichkeit, diesen zu benennen.

Aber nur weil ich einen Teddybären im Falle der Übergabe "Teddy" nenne, existiert nicht plötzlich irgendwo ein Teddy. Und wenn Du mir einen TeddyBär geben willst, dann musst Du erst irgendwoher einen bekommen!

So ist es auch bei den Action Listener: Der erwartet ein ActionEvent (= TeddyBär). Und nur weil der zweite Listener den "e2" ( = "Teddy") nennt, existiert der noch nicht woanders. Du musst also, wenn Du da ein ActionEvent übergeben musst, irgend wo ein solches Event her bekommen.
So ein ActionEvent hat der erste ActionListener ja bekommen - diesen könntest Du z.B. verwenden.
Okay, das versuche ich mal.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Button ActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
H Viele ActionListener (MouseListener) - Performance AWT, Swing, JavaFX & SWT 24
pkm MainFrame durch Actionlistener auffrischen, aber wie? AWT, Swing, JavaFX & SWT 2
L actionListener für Button AWT, Swing, JavaFX & SWT 97
R Actionlistener funktioniert nicht AWT, Swing, JavaFX & SWT 4
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
S Swing Variable in Actionlistener aufrufen AWT, Swing, JavaFX & SWT 10
P Swing ActionListener überschreibt einen Wert aus der Hauptklasse nicht AWT, Swing, JavaFX & SWT 5
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
M AWT Kann meinen Fehler beim ActionListener nicht finden AWT, Swing, JavaFX & SWT 5
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
L Ein Actionlistener für ein Textfeld, anstatt viele Actionlistener für ein Textfeld AWT, Swing, JavaFX & SWT 7
coolian ActionListener funktonirt nicht richtig auf JMenuItem AWT, Swing, JavaFX & SWT 4
L ActionListener zu Button in Panel hinzufügen AWT, Swing, JavaFX & SWT 10
R Kann JLabel in ActionListener nicht aufrufen AWT, Swing, JavaFX & SWT 4
Blender3D einzelner ActionListener vs anonyme ActionListener AWT, Swing, JavaFX & SWT 10
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
xYurisha ActionListener Methoden Buttons zuweisen! AWT, Swing, JavaFX & SWT 16
J ActionListener bei Buttons AWT, Swing, JavaFX & SWT 14
S Swing Problem mit Button und ActionListener AWT, Swing, JavaFX & SWT 5
it_is_all ActionListener umlenken/ updaten mit AddActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 3
it_is_all Event Handling ActionListener in anderer Klasse klappt nicht AWT, Swing, JavaFX & SWT 4
F "ActionListener" funktioniert nicht AWT, Swing, JavaFX & SWT 4
Z ActionListener Variable übergeben AWT, Swing, JavaFX & SWT 12
T JProgressbar während actionListener updaten AWT, Swing, JavaFX & SWT 1
S While Schleife im Actionlistener AWT, Swing, JavaFX & SWT 1
S ActionListener für alle Buttons AWT, Swing, JavaFX & SWT 26
R Swing ActionListener bei JButton AWT, Swing, JavaFX & SWT 9
T ActionListener nimmt JTextField nicht mehr an. AWT, Swing, JavaFX & SWT 2
P ActionListener Graphics Einbauen AWT, Swing, JavaFX & SWT 0
S actionlistener mit 2 fenster integrieren AWT, Swing, JavaFX & SWT 11
Liondary GUI - ActionListener AWT, Swing, JavaFX & SWT 7
J ActionListener erkennt Variable nicht AWT, Swing, JavaFX & SWT 6
E ActionListener führt falsche Funktion aus AWT, Swing, JavaFX & SWT 6
Sin137 ActionListener in MVC AWT, Swing, JavaFX & SWT 7
M ActionListener und mathematische Methoden AWT, Swing, JavaFX & SWT 13
A Oberfläche mit zwei Klassen und actionlistener verbinden AWT, Swing, JavaFX & SWT 7
Paul15 ActionListener Variablen AWT, Swing, JavaFX & SWT 13
Y ActionListener AWT, Swing, JavaFX & SWT 2
K Ereignisbehandlung, ActionListener, ActionEvent AWT, Swing, JavaFX & SWT 3
A Gui für Vokabeltrainer (ActionListener) AWT, Swing, JavaFX & SWT 14
C Im ActionListener Buttons disablen, einen Thread starten, dann Buttons enablen AWT, Swing, JavaFX & SWT 2
M JTextArea wird nicht aktualisiert (ActionListener-Problem) AWT, Swing, JavaFX & SWT 1
J Event Handling JOptionPane ActionListener setzen. AWT, Swing, JavaFX & SWT 3
S ActionListener Klasse aufrufen AWT, Swing, JavaFX & SWT 4
R Swing Problem: IOException bei ActionListener AWT, Swing, JavaFX & SWT 1
J ActionListener soll auf paint() Methode zugreifen AWT, Swing, JavaFX & SWT 1
A JButton wird bei ActionListener nicht "angenommen" AWT, Swing, JavaFX & SWT 7
T Einfaches Problem mit ActionListener AWT, Swing, JavaFX & SWT 2
K ActionListener mit KeyListener AWT, Swing, JavaFX & SWT 7
K GUI, Button, ActionListener - ein paar Einsteigerprobleme AWT, Swing, JavaFX & SWT 1
W Verschachtelter ActionListener AWT, Swing, JavaFX & SWT 0
N gewünschte ActionListener bei RadioButton mit isSelected geht nicht AWT, Swing, JavaFX & SWT 2
C Probleme mit Buttons und einem ActionListener AWT, Swing, JavaFX & SWT 2
K Swing JMenu und ActionListener AWT, Swing, JavaFX & SWT 4
A Swing ActionListener AWT, Swing, JavaFX & SWT 8
V ActionListener Abhängigkeitenproblem AWT, Swing, JavaFX & SWT 6
M ActionListener für mehrere Klassen AWT, Swing, JavaFX & SWT 4
J ActionListener für Buttons AWT, Swing, JavaFX & SWT 3
M Event Handling ActionListener übergeben ich checks net AWT, Swing, JavaFX & SWT 4
C Swing ComboBox - ActionListener deaktivieren AWT, Swing, JavaFX & SWT 2
S Button (ActionListener) funktioniert nicht, wenn y-Koordinate verändert wird AWT, Swing, JavaFX & SWT 5
L Swing ActionListener führt seine Aufgabe nur teilweise aus. AWT, Swing, JavaFX & SWT 7
A Swing ActionListener kann nicht hinzugefügt werden AWT, Swing, JavaFX & SWT 4
P Actionlistener - 3 klassen - kompliziert - auf methoden zugreifen AWT, Swing, JavaFX & SWT 3
Q CardLayout, ausgelagerte Panels, ActionListener AWT, Swing, JavaFX & SWT 5
M ProgressBar in ActionListener AWT, Swing, JavaFX & SWT 4
D AWT eigenem Knopf ActionListener zuweisen AWT, Swing, JavaFX & SWT 24
E Wert aus ActionListener geben AWT, Swing, JavaFX & SWT 4
J ActionListener per Innere Klasse oder e.getActionCommand() if-Abfrage? AWT, Swing, JavaFX & SWT 12
L Swing ActionListener zugriff auf bestimmte Elemente AWT, Swing, JavaFX & SWT 3
P Swing Seltsames ActionListener-Verhalten AWT, Swing, JavaFX & SWT 7
Oliver530 ActionListener von eigener ButtonKlasse AWT, Swing, JavaFX & SWT 16
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 2
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 3
C In der Schleife ActionListener aktivieren AWT, Swing, JavaFX & SWT 3
B Swing Problem beim ActionListener AWT, Swing, JavaFX & SWT 5
P Swing JPanel mit ActionListener mehrfach verwenden AWT, Swing, JavaFX & SWT 8
1 ActionEvent generieren und an ActionListener weiterleiten AWT, Swing, JavaFX & SWT 12
N Swing Klasse erbt von JDialog - Problem mit innerer ActionListener-Klasse AWT, Swing, JavaFX & SWT 6
N JCombobox und Actionlistener Aktion nur ausführen, wenn Useraktion ihn auslöst AWT, Swing, JavaFX & SWT 4
N Componente und Actionlistener AWT, Swing, JavaFX & SWT 5
C ActionListener AWT, Swing, JavaFX & SWT 6
Corben ActionListener Error AWT, Swing, JavaFX & SWT 2
F Wert durch ActionListener an Klasse übergeben AWT, Swing, JavaFX & SWT 3
I Swing Problem mit InputMap bei JButton (ActionListener) AWT, Swing, JavaFX & SWT 3
S Swing JButton mit ActionListener innerhalb einer JTable AWT, Swing, JavaFX & SWT 4
P Variablen in einem ActionListener zurücksetzen AWT, Swing, JavaFX & SWT 6
M AWT Problem mit ActionListener AWT, Swing, JavaFX & SWT 2
A Swing Bug in Swing? Wenn checkbox disabled reagiert ActionListener nicht AWT, Swing, JavaFX & SWT 5
S ActionListener "nach oben weitergeben" AWT, Swing, JavaFX & SWT 10
M Anonymer ActionListener AWT, Swing, JavaFX & SWT 4
L SWT Actionlistener Combobox öffnen AWT, Swing, JavaFX & SWT 4
S MenuBar ActionListener Event ... AWT, Swing, JavaFX & SWT 6
B Swing Formular mit mehreren Elementen - wie die ActionListener-Verarbeitung lösen? AWT, Swing, JavaFX & SWT 2
M getSource() findet Button nicht - ActionListener AWT, Swing, JavaFX & SWT 4
S Swing mit ActionListener auf Objekte einer anderen Klasse zugreifen AWT, Swing, JavaFX & SWT 3
G Swing Button ActionListener macht komische Sachen AWT, Swing, JavaFX & SWT 19

Ähnliche Java Themen

Neue Themen


Oben