Eine Methode über Actionlistener beenden

Herr.Blacky

Mitglied
Schönen guten Abend,

Vorweg, ich bin komplett neu im Themengebiet und habe vor knapp zwei Wochen angefangen.

Zu meinem Problem. Ich möchte mir ein Zahlen-Rate-Spiel programmieren, es wird eine zufällige Zahl erzeugt, die dann der Anwender erraten muss, natürlich mit verschiedenen Tipps. Klappt auch gut.
Nun, ich habe mir eine Klasse erstellt, dort sind die verschiedenen Methoden, die ein Fesnster erzeugen.
In einer dieser Fenster-Methode habe ich den Actionlistener auf einem Button angemeldet um ein neues Fenster aufzurufen, klappt auch! Doch, wie bekomme ich das erster Fenster geschlossen?

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

public class Actionlistener2 implements ActionListener
{


        @Override
        public void actionPerformed(ActionEvent e) {
        
            FensterBib Fenster1 = new FensterBib();
            Fenster1.Frame1();
            
            
            
        }
        
}



import javax.swing.*;
import javax.swing.JFrame;

public class FensterBib  {
    
    
    public void Frame0 () {
       
        //JFrame Stuff.......
       

        JButton B1 = new JButton("Generieren");
        B1.setVisible(true);
        South.add(B1);
        B1.addActionListener(new Actionlistener2());
}
}


Frame0 () wird von der Mainmethode aufgerufen.

Wie gesagt, klappt soweit alles. Bin um Nachsicht :)
 
K

kneitzel

Gast
Also generell ist der Aufbau, den du derzeit hast, nicht ganz so gut.

Statt den ActionListener in eine extra Klasse zu packen kannst du die Methode direkt in der Klasse des Frames haben. Eingebunden wird es dann über z.B. eine Methodenreferenz oder Lambda Expression.

Dann kannst du das Frame direkt mit close Aufruf schließen.

Prinzipiell solltest du auch das Fenster des Elements bekommen können. Du kannst beim ActionEvent Parameter auf source zugreifen. Das ist dann der JButton oder was das Event ausgelöst hat. Da kannst du so lange getParent aufrufen bis du beim JFrame angekommen bist.
 

Herr.Blacky

Mitglied
Alles klar! Versuche ja noch viel. Habe mal gelesen, dass es unübersichtlich werden könnte, wenn man die ActionListener nicht in einer eigenen Klasse packt :).
Wenn ich den ActionListerner in der Klasse habe, sollte es kein Problem sein. Dann kann ich ja einfach mit Fenster.dispose(); das Fenster schließen.
Danke
 

Herr.Blacky

Mitglied
Ich habe noch eine dumme Frage. Hoffe es ist in Ordnung, hier diese Frage reinzuschreiben.

Ich befasse mich auch natürlich mit Theorie hinter einer OOP.
Ich habe mir eine Klasse geschrieben, dort werden die ganzen Berechnungen für mein Spiel verarbeitet. Sprich, die Zufallszahl generieren, Addition, Subtrakion, Modulo und eine Art 3 kreuz 3 Matirx.
Problem! Wenn ich in einer anderen Klasse ein Objekt instanziere und dort die Methode aufrufe, zum Beispiel "Addition", generiert er natürlich wieder eine neue Zufallszahl und meine IF-Abfragen und Schleifen gehen nicht mehr.
Ich habe es jetzt so gelöst, habe die ganzen Methoden, in der Berechnungsklasse, statisch gemacht, und kann so gezielt meine Methoden aufrufen, ohne eine neues Klassenobjekt zu erstellen. Mit getter und setter lese ich die Attribute der Klasse dann aus. Wie Summe, Zufallszahl und den Quotient.

Muss ich den Konstruktor der Klassen vielleicht ändern?
Oder kann man das bei der Instanziierung des Objektes verändern?
Ich denke mir, die ganzen Methoden auf statisch zu haben, ist nicht das sauberste.
 
M

Mart

Gast
du hast im prinzip zu viel in eine Verkettung gepackt + deine Methoden auf ein ziel eingestimmt .. wenn du es "universeller" programmierst wirds auch so funktionieren mit mehreren objekten, statisch als lösung bietet sich meistens nicht an

zb addition wird immer funktionieren, auch wenn die zahlen keine zufallszahlen sind ;)
 

Herr.Blacky

Mitglied
Ja genau.
Habe meine Mehtoden immer so in anderen Klassen aufgerufen :

Java:
{
            
            Operationen add = new Operationen();
            add.addieren();
            
        }


Mein Problem war, dass meine Random-Methode auch in dieser Klasse drin war.
Klar, habe die Methode und Klasse so öferts verwendtet und somit immer eine neue Zufallszahl generiert, alleine dass ich ja ein neues Objekt der Klasse angefertig habe.
MIt der statischen Mehtode kann ich ja "gezielt" die Methode in anderen Klassen verwenden, ohne ein neues Klassenobjekt zu erstellen.

Ich gucke nochmal drüber :), es funktioniert. Aber die Methoden auf statisch zu haben, ist mir ein Dorn im Auge.

Die Operations-Klasse habe ich nach meinem Gefühl schon recht allgemein geschrieben :)

Danke!
 

fhoffmann

Top Contributor
Es kann durchaus sinnvoll sein, eine Hilfsklasse mit statischen Funktionen zu schreiben (siehe z.B. java.lang.Math). Wenn deine Klasse "Operationen" heißt, ist sie möglicherweise ein Kandidat dafür.
In der Regel sollte diese Klasse dann aber keine Member haben. Möglicherweise solltest du die Klasse in zwei Klassen aufteilen.
Aber weil wir deine Klasse nicht kennen, können wir nicht wirklich etwas dazu sagen.
 

Herr.Blacky

Mitglied
Ja, vielen Danke :)
Ein Problem war, ich habe zweimal die Methode angerufen, einmal um den Rechnenbefehl zu starten und einmal um den Wert der Rechnung im JLabel auszugeben mit der Methode, die einen Rückgabewert hat. Hatte dort noch keine gettter/setter Methode geschrieben. Oh man...

Danke :) sehr nett hier
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Problem bei eshop -> Ausführen einer Methode über eine Shopverwaltung Java Basics - Anfänger-Themen 6
M Wert von globalen Variablen über eine Methode ändern Java Basics - Anfänger-Themen 8
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
berserkerdq2 Wozu benötigt man den BiPredicate, kann ich nicht einfach eine normale Methode nutzen, statt BiPredicate? Java Basics - Anfänger-Themen 3
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
M Eine Methode die erkennt ob die ein gegebene zahl größer oder kleiner sein muss Java Basics - Anfänger-Themen 2
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
M Wie verknüpfe ich eine Bedingung mit einer Methode ohne if-Verzweigung & Bedingungsoperator? Java Basics - Anfänger-Themen 2
M Wie kann eine Methode eine andere Methode um Werte wie z.B. 1 erhöhen? Java Basics - Anfänger-Themen 6
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
B eine methode erstellen Java Basics - Anfänger-Themen 7
B Eine Methode erstellen Java Basics - Anfänger-Themen 3
bensdt Klasse erweitern um eine Methode "void decrement()" Java Basics - Anfänger-Themen 5
A Kann man eine Methode als Variable speichern und danach noch verändern? Java Basics - Anfänger-Themen 6
M Wie lang eine Funktion/Methode? Java Basics - Anfänger-Themen 51
scratchy1 Kann man in einer Methode eine andere aufrufen? Java Basics - Anfänger-Themen 2
scratchy1 Wie deklariert man eine Methode, die ein Objekt zurückgeben soll? Java Basics - Anfänger-Themen 22
J Methoden Suche effiziente Implementierung für eine Methode Java Basics - Anfänger-Themen 3
S Wie erstelle ich eine Vorbedingung für eine Variable einer Methode ? Java Basics - Anfänger-Themen 5
J Ein Objekt and eine Methode übergeben zwei Schreibweisen? Java Basics - Anfänger-Themen 6
R Eine Schleife durch eine Methode schließen? Java Basics - Anfänger-Themen 4
B Wie kann ich eine Methode einer selbst erstellten Klasse statisch importieren? Java Basics - Anfänger-Themen 5
S Methoden Beim Start meines Projektes eine Methode ausführen Java Basics - Anfänger-Themen 14
M Methoden Int einer Methode an eine andere Methode übergeben Java Basics - Anfänger-Themen 4
H Innerhalb einer Methode eine Variable der aufrufenden Methode ändern? Java Basics - Anfänger-Themen 2
TomatenBrot447 Mit toString eine Ausgabe liefern wie in einer schon implementierten Methode ? Java Basics - Anfänger-Themen 13
TomatenBrot447 Mit toString eine Ausgabe liefern wie in einer schon implementierten Methode ? Java Basics - Anfänger-Themen 1
B Hilfe bei eine Java-Methode Java Basics - Anfänger-Themen 4
G Wie rufe ich eine Methode außerhalb eines Projektes auf? Java Basics - Anfänger-Themen 18
P Variablen Wie kann ich eine lokale Variable in eine andere Methode einfügen? Java Basics - Anfänger-Themen 27
G Gibt es eine Methode die bei einem StringBuilder n mal das Zeichen c hinzufügt? Java Basics - Anfänger-Themen 6
V Vererbung (wie) kann man eine 'super'-Methode auf ein Objekt anwenden ? Java Basics - Anfänger-Themen 6
TheMenox Methoden Bestimmung an welche Methode eine andere Methode ihren Wert weitergeben soll Java Basics - Anfänger-Themen 35
M Best Practice Wann eine Methode schreiben ? Java Basics - Anfänger-Themen 14
G return-wert für eine Methode Java Basics - Anfänger-Themen 1
C Rekursion überführen in eine normale methode Java Basics - Anfänger-Themen 1
H Ist Math.Random() eine Methode oder ein Methodenaufruf (Klausurfrage) Java Basics - Anfänger-Themen 4
F Um 14:00 eine Methode aufrufen Java Basics - Anfänger-Themen 5
T unterklasse will eine methode von der oberklasse nutzen Java Basics - Anfänger-Themen 4
O Timeout für eine Methode festlegen Java Basics - Anfänger-Themen 3
llabusch Operatoren Methode um eine Zahl zu quadrieren Java Basics - Anfänger-Themen 1
D Methoden für was eine set zur get - Methode ?? Java Basics - Anfänger-Themen 3
F Teil eines Byte Array an eine Methode übergeben Java Basics - Anfänger-Themen 5
G Erste Schritte Timer: In einem festgelegten Intervall eine Methode ausführen Java Basics - Anfänger-Themen 6
S Methoden Rückgabewert einer Methode als Parameter an eine andere Methode übergeben, geht das? Java Basics - Anfänger-Themen 5
S Methoden void-Methode: Wieso gibt es eine Rückgabe? Java Basics - Anfänger-Themen 5
T Probleme eine Methode zu schreiben Java Basics - Anfänger-Themen 20
J Methode um eine HTML-Datei zu öffnen Java Basics - Anfänger-Themen 10
B auf private Variable durch eine Methode zugreifen Java Basics - Anfänger-Themen 8
P Methoden Erklärung wie ich eine spezielle Methode richtig anwende Java Basics - Anfänger-Themen 9
R eine Methode automatisch wiederholen Java Basics - Anfänger-Themen 12
V Mit JS eine JAVA Methode aufrufen Java Basics - Anfänger-Themen 5
O Überprüfen ob eine Methode ausgeführt wurde Java Basics - Anfänger-Themen 10
T Methode, die eine 2 dimensionale Matrix kopiert. Java Basics - Anfänger-Themen 16
L Methoden Eine Methode aus einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 4
W Methoden Wie wird eine Methode hier aufgerufen? Java Basics - Anfänger-Themen 5
E Methoden Wie kann ich eine Methode so schreiben, dass Methodenaufruf polymorph erfolgen kann? Java Basics - Anfänger-Themen 8
D Von einer Methode auf eine lokale Variable in der Main zugreifen? Java Basics - Anfänger-Themen 15
F Klassen DataBuffer - Methode um Array in eine Bank zu schreiben Java Basics - Anfänger-Themen 3
W Eine Methode schreiben, ob eine Matrix eine Diagonalmatrix ist.? Java Basics - Anfänger-Themen 3
H Eine Methode mehrere Werte zurückgeben lassen Java Basics - Anfänger-Themen 7
L Datentypen eine Methode mit zwei möglichen Rückgabewerten Java Basics - Anfänger-Themen 20
E Variable aus einer Methode heraus in eine andere Klasse übergeben Java Basics - Anfänger-Themen 13
maddin86 Eine Methode für ein- und zweidimensionale double Felder als Parameter? Java Basics - Anfänger-Themen 5
H Reflexion: Eine Methode, beliebig viele Parameter (Java 1.4.2) Java Basics - Anfänger-Themen 8
1 OOP Zugriff auf eine Methode nur einmal die Sekunde Java Basics - Anfänger-Themen 8
E Methode gesucht die eine Abfolge von Ereignissen festsetzt. Java Basics - Anfänger-Themen 3
M Zwei Threads greifen auf eine Methode einer Klasse zu. Komplikationen? Java Basics - Anfänger-Themen 18
B Eine Methode für alle Subklassen aufrufen? Java Basics - Anfänger-Themen 8
A Einer Methode eine andere Methode übergeben Java Basics - Anfänger-Themen 6
Darth Simple Übergabe eines Strings an eine Methode Java Basics - Anfänger-Themen 3
L Aus einer Methode eine eigene Klasse machen - modular coden Java Basics - Anfänger-Themen 14
O Beim Schließen JDialog, im Frame-Owner eine Methode starten Java Basics - Anfänger-Themen 6
G Wie greife ich auf eine Methode zu? Java Basics - Anfänger-Themen 8
G Was passiert mit eine Methode bei einer Instanz Java Basics - Anfänger-Themen 13
G primitive Datentypen als Referenz an eine Methode übergeben Java Basics - Anfänger-Themen 2
N Wann muss eine Methode - protected sein wann public wann. Java Basics - Anfänger-Themen 5
K Eine Neue Methode Schreiben . Java Basics - Anfänger-Themen 15
StudentXYZ Auf Objekte zugreifen, die eine andere Methode initialisiert Java Basics - Anfänger-Themen 2
M Wert von einer Methode in eine Andere übergeben Java Basics - Anfänger-Themen 6
B Wie eine Methode aufrufen? Java Basics - Anfänger-Themen 2
G JComboBox um eine Methode erweitern Java Basics - Anfänger-Themen 2
E eine 'showDialog'-Methode erstellen Java Basics - Anfänger-Themen 9
B Wie aus instanzierter Klasse eine Methode der Main-Klasse Java Basics - Anfänger-Themen 9
M Methode einer Klasse in eine andere Übergeben Java Basics - Anfänger-Themen 4
T gibt es eine methode die einem alle Strings zurückliefert? Java Basics - Anfänger-Themen 7
G eine methode die zählt Java Basics - Anfänger-Themen 3
H strings in eine andere methode übergeben? Java Basics - Anfänger-Themen 6
W Eine Methode, mehrfacher gleichzeitger Ablauf möglich? Java Basics - Anfänger-Themen 2
A Wert einer Variable an eine Methode in einer anderen Klasse. Java Basics - Anfänger-Themen 4
M Brauche ein Beispiel für eine set() get() Methode Java Basics - Anfänger-Themen 4
M Konstruktor eine statische Methode? Java Basics - Anfänger-Themen 9
G Eine Methode zum Warten? Java Basics - Anfänger-Themen 7
G Auf eine Methode zugreifen Java Basics - Anfänger-Themen 2
B in einer Methode eine andere Methode aufrufen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben